algebra.direct_limit
⟷
Mathlib.Algebra.DirectLimit
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -246,9 +246,8 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : DirectS
constructor
· intro i0 hi0
rw [DFinsupp.mem_support_iff, DirectSum.sub_apply, ← DirectSum.single_eq_lof, ←
- DirectSum.single_eq_lof, DFinsupp.single_apply, DFinsupp.single_apply] at hi0
- split_ifs at hi0 with hi hj hj; · rwa [hi] at hik ; · rwa [hi] at hik ;
- · rwa [hj] at hjk
+ DirectSum.single_eq_lof, DFinsupp.single_apply, DFinsupp.single_apply] at hi0
+ split_ifs at hi0 with hi hj hj; · rwa [hi] at hik; · rwa [hi] at hik; · rwa [hj] at hjk
exfalso; apply hi0; rw [sub_zero]
simp [LinearMap.map_sub, totalize_of_le, hik, hjk, DirectedSystem.map_map,
DirectSum.apply_eq_component, DirectSum.component.of]⟩)
@@ -532,7 +531,7 @@ theorem of.zero_exact_aux2 {x : FreeCommRing (Σ i, G i)} {s t} (hxs : IsSupport
lift_of, restriction_of, dif_pos (hst hps), lift_of]
dsimp only
have := DirectedSystem.map_map fun i j h => f' i j h
- dsimp only at this
+ dsimp only at this
rw [this]; rfl
· rintro x y ihx ihy
rw [(restriction _).map_add, (FreeCommRing.lift _).map_add, (f' j k hjk).map_add, ihx, ihy,
@@ -560,7 +559,7 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
restriction_of, dif_pos, lift_of, lift_of]
dsimp only
have := DirectedSystem.map_map fun i j h => f' i j h
- dsimp only at this
+ dsimp only at this
rw [this]; exact sub_self _
exacts [Or.inr rfl, Or.inl rfl]
· refine' ⟨i, {⟨i, 1⟩}, _, is_supported_sub (is_supported_of.2 rfl) is_supported_one, _⟩
@@ -637,7 +636,7 @@ theorem of.zero_exact [IsDirected ι (· ≤ ·)] {i x} (hix : of G (fun i j h =
haveI : Nonempty ι := ⟨i⟩
let ⟨j, s, H, hxs, hx⟩ := of.zero_exact_aux hix
have hixs : (⟨i, x⟩ : Σ i, G i) ∈ s := is_supported_of.1 hxs
- ⟨j, H ⟨i, x⟩ hixs, by rw [restriction_of, dif_pos hixs, lift_of] at hx <;> exact hx⟩
+ ⟨j, H ⟨i, x⟩ hixs, by rw [restriction_of, dif_pos hixs, lift_of] at hx <;> exact hx⟩
#align ring.direct_limit.of.zero_exact Ring.DirectLimit.of.zero_exact
-/
@@ -731,7 +730,7 @@ instance nontrivial [DirectedSystem G fun i j h => f' i j h] :
change (0 : Ring.DirectLimit G fun i j h => f' i j h) ≠ 1
rw [← (Ring.DirectLimit.of _ _ _).map_one]
intro H; rcases Ring.DirectLimit.of.zero_exact H.symm with ⟨j, hij, hf⟩
- rw [(f' i j hij).map_one] at hf
+ rw [(f' i j hij).map_one] at hf
exact one_ne_zero hf⟩⟩
#align field.direct_limit.nontrivial Field.DirectLimit.nontrivial
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -48,8 +48,8 @@ variable [dec_ι : DecidableEq ι] [Preorder ι]
variable (G : ι → Type w)
#print DirectedSystem /-
-/- ./././Mathport/Syntax/Translate/Command.lean:404:30: infer kinds are unsupported in Lean 4: #[`map_self] [] -/
-/- ./././Mathport/Syntax/Translate/Command.lean:404:30: infer kinds are unsupported in Lean 4: #[`map_map] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:400:30: infer kinds are unsupported in Lean 4: #[`map_self] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:400:30: infer kinds are unsupported in Lean 4: #[`map_map] [] -/
/-- A directed system is a functor from a category (directed poset) to another category. -/
class DirectedSystem (f : ∀ i j, i ≤ j → G i → G j) : Prop where
map_self : ∀ i x h, f i i h x = x
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -48,8 +48,8 @@ variable [dec_ι : DecidableEq ι] [Preorder ι]
variable (G : ι → Type w)
#print DirectedSystem /-
-/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`map_self] [] -/
-/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`map_map] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:404:30: infer kinds are unsupported in Lean 4: #[`map_self] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:404:30: infer kinds are unsupported in Lean 4: #[`map_map] [] -/
/-- A directed system is a functor from a category (directed poset) to another category. -/
class DirectedSystem (f : ∀ i j, i ≤ j → G i → G j) : Prop where
map_self : ∀ i x h, f i i h x = x
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -223,7 +223,7 @@ theorem toModule_totalize_of_le {x : DirectSum ι G} {i j : ι} (hij : i ≤ j)
by
rw [← @DFinsupp.sum_single ι G _ _ _ x]
unfold DFinsupp.sum
- simp only [LinearMap.map_sum]
+ simp only [map_sum]
refine' Finset.sum_congr rfl fun k hk => _
rw [DirectSum.single_eq_lof R k (x k), DirectSum.toModule_lof, DirectSum.toModule_lof,
totalize_of_le (hx k hk), totalize_of_le (le_trans (hx k hk) hij), DirectedSystem.map_map]
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,10 +3,10 @@ Copyright (c) 2019 Kenny Lau, Chris Hughes. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kenny Lau, Chris Hughes
-/
-import Mathbin.Data.Finset.Order
-import Mathbin.Algebra.DirectSum.Module
-import Mathbin.RingTheory.FreeCommRing
-import Mathbin.RingTheory.Ideal.Quotient
+import Data.Finset.Order
+import Algebra.DirectSum.Module
+import RingTheory.FreeCommRing
+import RingTheory.Ideal.Quotient
#align_import algebra.direct_limit from "leanprover-community/mathlib"@"a87d22575d946e1e156fc1edd1e1269600a8a282"
@@ -48,8 +48,8 @@ variable [dec_ι : DecidableEq ι] [Preorder ι]
variable (G : ι → Type w)
#print DirectedSystem /-
-/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`map_self] [] -/
-/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`map_map] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`map_self] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`map_map] [] -/
/-- A directed system is a functor from a category (directed poset) to another category. -/
class DirectedSystem (f : ∀ i j, i ≤ j → G i → G j) : Prop where
map_self : ∀ i x h, f i i h x = x
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -453,7 +453,7 @@ theorem exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)] (z : DirectLimit G f
let ⟨i, x⟩ := a
let ⟨j, y, hs⟩ := ih
let ⟨k, hik, hjk⟩ := exists_ge_ge i j
- ⟨k, f i k hik x * f j k hjk y, by rw [(of _ _ _).map_mul, of_f, of_f, hs] <;> rfl⟩)
+ ⟨k, f i k hik x * f j k hjk y, by rw [(of _ _ _).map_hMul, of_f, of_f, hs] <;> rfl⟩)
(fun s ⟨i, x, ih⟩ => ⟨i, -x, by rw [(of _ _ _).map_neg, ih] <;> rfl⟩)
fun p q ⟨i, x, ihx⟩ ⟨j, y, ihy⟩ =>
let ⟨k, hik, hjk⟩ := exists_ge_ge i j
@@ -527,9 +527,9 @@ theorem of.zero_exact_aux2 {x : FreeCommRing (Σ i, G i)} {s t} (hxs : IsSupport
(restriction _).map_neg, (restriction _).map_one, (FreeCommRing.lift _).map_neg,
(FreeCommRing.lift _).map_one]
· rintro _ ⟨p, hps, rfl⟩ n ih
- rw [(restriction _).map_mul, (FreeCommRing.lift _).map_mul, (f' j k hjk).map_mul, ih,
- (restriction _).map_mul, (FreeCommRing.lift _).map_mul, restriction_of, dif_pos hps, lift_of,
- restriction_of, dif_pos (hst hps), lift_of]
+ rw [(restriction _).map_hMul, (FreeCommRing.lift _).map_hMul, (f' j k hjk).map_hMul, ih,
+ (restriction _).map_hMul, (FreeCommRing.lift _).map_hMul, restriction_of, dif_pos hps,
+ lift_of, restriction_of, dif_pos (hst hps), lift_of]
dsimp only
have := DirectedSystem.map_map fun i j h => f' i j h
dsimp only at this
@@ -588,10 +588,10 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
(is_supported_of.2 <| Or.inr <| Or.inr rfl)),
_⟩
· rintro k (rfl | ⟨rfl | ⟨rfl | hk⟩⟩) <;> rfl
- · rw [(restriction _).map_sub, (restriction _).map_mul, restriction_of, restriction_of,
+ · rw [(restriction _).map_sub, (restriction _).map_hMul, restriction_of, restriction_of,
restriction_of, dif_pos, dif_pos, dif_pos, (FreeCommRing.lift _).map_sub,
- (FreeCommRing.lift _).map_mul, lift_of, lift_of, lift_of]
- dsimp only; rw [(f' i i _).map_mul]
+ (FreeCommRing.lift _).map_hMul, lift_of, lift_of, lift_of]
+ dsimp only; rw [(f' i i _).map_hMul]
exacts [sub_self _, Or.inl rfl, Or.inr (Or.inr rfl), Or.inr (Or.inl rfl)]
· refine' Nonempty.elim (by infer_instance) fun ind : ι => _
refine' ⟨ind, ∅, fun _ => False.elim, is_supported_zero, _⟩
@@ -623,7 +623,7 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
is_supported_mul (is_supported_upwards hxs <| Set.subset_union_left (↑s) t)
(is_supported_upwards hyt <| Set.subset_union_right (↑s) t),
_⟩
- rw [(restriction _).map_mul, (FreeCommRing.lift _).map_mul, ←
+ rw [(restriction _).map_hMul, (FreeCommRing.lift _).map_hMul, ←
of.zero_exact_aux2 G f' hyt hj this hjk (Set.subset_union_right (↑s) t), iht,
(f' j k hjk).map_zero, MulZeroClass.mul_zero]
#align ring.direct_limit.of.zero_exact_aux Ring.DirectLimit.of.zero_exact_aux
@@ -686,7 +686,7 @@ def lift : DirectLimit G f →+* P :=
rw [SetLike.mem_coe, Ideal.mem_comap, mem_bot]
rcases hx with (⟨i, j, hij, x, rfl⟩ | ⟨i, rfl⟩ | ⟨i, x, y, rfl⟩ | ⟨i, x, y, rfl⟩) <;>
simp only [RingHom.map_sub, lift_of, Hg, RingHom.map_one, RingHom.map_add, RingHom.map_mul,
- (g i).map_one, (g i).map_add, (g i).map_mul, sub_self])
+ (g i).map_one, (g i).map_add, (g i).map_hMul, sub_self])
#align ring.direct_limit.lift Ring.DirectLimit.lift
-/
@@ -740,7 +740,7 @@ instance nontrivial [DirectedSystem G fun i j h => f' i j h] :
theorem exists_inv {p : Ring.DirectLimit G f} : p ≠ 0 → ∃ y, p * y = 1 :=
Ring.DirectLimit.induction_on p fun i x H =>
⟨Ring.DirectLimit.of G f i x⁻¹, by
- erw [← (Ring.DirectLimit.of _ _ _).map_mul,
+ erw [← (Ring.DirectLimit.of _ _ _).map_hMul,
mul_inv_cancel fun h : x = 0 => H <| by rw [h, (Ring.DirectLimit.of _ _ _).map_zero],
(Ring.DirectLimit.of _ _ _).map_one]⟩
#align field.direct_limit.exists_inv Field.DirectLimit.exists_inv
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,17 +2,14 @@
Copyright (c) 2019 Kenny Lau, Chris Hughes. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kenny Lau, Chris Hughes
-
-! This file was ported from Lean 3 source module algebra.direct_limit
-! leanprover-community/mathlib commit a87d22575d946e1e156fc1edd1e1269600a8a282
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Data.Finset.Order
import Mathbin.Algebra.DirectSum.Module
import Mathbin.RingTheory.FreeCommRing
import Mathbin.RingTheory.Ideal.Quotient
+#align_import algebra.direct_limit from "leanprover-community/mathlib"@"a87d22575d946e1e156fc1edd1e1269600a8a282"
+
/-!
# Direct limit of modules, abelian groups, rings, and fields.
mathlib commit https://github.com/leanprover-community/mathlib/commit/4e24c4bfcff371c71f7ba22050308aa17815626c
@@ -224,8 +224,8 @@ theorem toModule_totalize_of_le {x : DirectSum ι G} {i j : ι} (hij : i ≤ j)
DirectSum.toModule R ι (G j) (fun k => totalize G f k j) x =
f i j hij (DirectSum.toModule R ι (G i) (fun k => totalize G f k i) x) :=
by
- rw [← @Dfinsupp.sum_single ι G _ _ _ x]
- unfold Dfinsupp.sum
+ rw [← @DFinsupp.sum_single ι G _ _ _ x]
+ unfold DFinsupp.sum
simp only [LinearMap.map_sum]
refine' Finset.sum_congr rfl fun k hk => _
rw [DirectSum.single_eq_lof R k (x k), DirectSum.toModule_lof, DirectSum.toModule_lof,
@@ -248,8 +248,8 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : DirectS
subst hxy
constructor
· intro i0 hi0
- rw [Dfinsupp.mem_support_iff, DirectSum.sub_apply, ← DirectSum.single_eq_lof, ←
- DirectSum.single_eq_lof, Dfinsupp.single_apply, Dfinsupp.single_apply] at hi0
+ rw [DFinsupp.mem_support_iff, DirectSum.sub_apply, ← DirectSum.single_eq_lof, ←
+ DirectSum.single_eq_lof, DFinsupp.single_apply, DFinsupp.single_apply] at hi0
split_ifs at hi0 with hi hj hj; · rwa [hi] at hik ; · rwa [hi] at hik ;
· rwa [hj] at hjk
exfalso; apply hi0; rw [sub_zero]
@@ -259,7 +259,7 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : DirectS
(fun x y ⟨i, hi, hxi⟩ ⟨j, hj, hyj⟩ =>
let ⟨k, hik, hjk⟩ := exists_ge_ge i j
⟨k, fun l hl =>
- (Finset.mem_union.1 (Dfinsupp.support_add hl)).elim (fun hl => le_trans (hi _ hl) hik)
+ (Finset.mem_union.1 (DFinsupp.support_add hl)).elim (fun hl => le_trans (hi _ hl) hik)
fun hl => le_trans (hj _ hl) hjk,
by
simp [LinearMap.map_add, hxi, hyj, to_module_totalize_of_le hik hi,
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -51,8 +51,8 @@ variable [dec_ι : DecidableEq ι] [Preorder ι]
variable (G : ι → Type w)
#print DirectedSystem /-
-/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`map_self] [] -/
-/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`map_map] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`map_self] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`map_map] [] -/
/-- A directed system is a functor from a category (directed poset) to another category. -/
class DirectedSystem (f : ∀ i j, i ≤ j → G i → G j) : Prop where
map_self : ∀ i x h, f i i h x = x
@@ -66,23 +66,25 @@ variable [∀ i, AddCommGroup (G i)] [∀ i, Module R (G i)]
variable {G} (f : ∀ i j, i ≤ j → G i →ₗ[R] G j)
+#print Module.DirectedSystem.map_self /-
/-- A copy of `directed_system.map_self` specialized to linear maps, as otherwise the
`λ i j h, f i j h` can confuse the simplifier. -/
theorem DirectedSystem.map_self [DirectedSystem G fun i j h => f i j h] (i x h) : f i i h x = x :=
DirectedSystem.map_self (fun i j h => f i j h) i x h
#align module.directed_system.map_self Module.DirectedSystem.map_self
+-/
+#print Module.DirectedSystem.map_map /-
/-- A copy of `directed_system.map_map` specialized to linear maps, as otherwise the
`λ i j h, f i j h` can confuse the simplifier. -/
theorem DirectedSystem.map_map [DirectedSystem G fun i j h => f i j h] {i j k} (hij hjk x) :
f j k hjk (f i j hij x) = f i k (le_trans hij hjk) x :=
DirectedSystem.map_map (fun i j h => f i j h) hij hjk x
#align module.directed_system.map_map Module.DirectedSystem.map_map
+-/
variable (G)
-include dec_ι
-
#print Module.DirectLimit /-
/-- The direct limit of a directed system is the modules glued together along the maps. -/
def DirectLimit : Type max v w :=
@@ -116,11 +118,14 @@ def of (i) : G i →ₗ[R] DirectLimit G f :=
variable {R ι G f}
+#print Module.DirectLimit.of_f /-
@[simp]
theorem of_f {i j hij x} : of R ι G f j (f i j hij x) = of R ι G f i x :=
Eq.symm <| (Submodule.Quotient.eq _).2 <| subset_span ⟨i, j, hij, x, rfl⟩
#align module.direct_limit.of_f Module.DirectLimit.of_f
+-/
+#print Module.DirectLimit.exists_of /-
/-- Every element of the direct limit corresponds to some element in
some component of the directed system. -/
theorem exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)] (z : DirectLimit G f) :
@@ -132,22 +137,24 @@ theorem exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)] (z : DirectLimit G f
let ⟨k, hik, hjk⟩ := exists_ge_ge i j
⟨k, f i k hik x + f j k hjk y, by rw [LinearMap.map_add, of_f, of_f, ihx, ihy] <;> rfl⟩
#align module.direct_limit.exists_of Module.DirectLimit.exists_of
+-/
+#print Module.DirectLimit.induction_on /-
@[elab_as_elim]
protected theorem induction_on [Nonempty ι] [IsDirected ι (· ≤ ·)] {C : DirectLimit G f → Prop}
(z : DirectLimit G f) (ih : ∀ i x, C (of R ι G f i x)) : C z :=
let ⟨i, x, h⟩ := exists_of z
h ▸ ih i x
#align module.direct_limit.induction_on Module.DirectLimit.induction_on
+-/
variable {P : Type u₁} [AddCommGroup P] [Module R P] (g : ∀ i, G i →ₗ[R] P)
variable (Hg : ∀ i j hij x, g j (f i j hij x) = g i x)
-include Hg
-
variable (R ι G f)
+#print Module.DirectLimit.lift /-
/-- The universal property of the direct limit: maps from the components to another module
that respect the directed system structure (i.e. make some diagram commute) give rise
to a unique map out of the direct limit. -/
@@ -157,21 +164,24 @@ def lift : DirectLimit G f →ₗ[R] P :=
rw [← hx, SetLike.mem_coe, LinearMap.sub_mem_ker_iff, DirectSum.toModule_lof,
DirectSum.toModule_lof, Hg])
#align module.direct_limit.lift Module.DirectLimit.lift
+-/
variable {R ι G f}
-omit Hg
-
+#print Module.DirectLimit.lift_of /-
theorem lift_of {i} (x) : lift R ι G f g Hg (of R ι G f i x) = g i x :=
DirectSum.toModule_lof R _ _
#align module.direct_limit.lift_of Module.DirectLimit.lift_of
+-/
+#print Module.DirectLimit.lift_unique /-
theorem lift_unique [Nonempty ι] [IsDirected ι (· ≤ ·)] (F : DirectLimit G f →ₗ[R] P) (x) :
F x =
lift R ι G f (fun i => F.comp <| of R ι G f i)
(fun i j hij x => by rw [LinearMap.comp_apply, of_f] <;> rfl) x :=
DirectLimit.induction_on x fun i x => by rw [lift_of] <;> rfl
#align module.direct_limit.lift_unique Module.DirectLimit.lift_unique
+-/
section Totalize
@@ -179,8 +189,6 @@ open scoped Classical
variable (G f)
-omit dec_ι
-
#print Module.DirectLimit.totalize /-
/-- `totalize G f i j` is a linear map from `G i` to `G j`, for *every* `i` and `j`.
If `i ≤ j`, then it is the map `f i j` that comes with the directed system `G`,
@@ -198,9 +206,11 @@ theorem totalize_of_le {i j} (h : i ≤ j) : totalize G f i j = f i j h :=
#align module.direct_limit.totalize_of_le Module.DirectLimit.totalize_of_le
-/
+#print Module.DirectLimit.totalize_of_not_le /-
theorem totalize_of_not_le {i j} (h : ¬i ≤ j) : totalize G f i j = 0 :=
dif_neg h
#align module.direct_limit.totalize_of_not_le Module.DirectLimit.totalize_of_not_le
+-/
end Totalize
@@ -208,6 +218,7 @@ variable [DirectedSystem G fun i j h => f i j h]
open scoped Classical
+#print Module.DirectLimit.toModule_totalize_of_le /-
theorem toModule_totalize_of_le {x : DirectSum ι G} {i j : ι} (hij : i ≤ j)
(hx : ∀ k ∈ x.support, k ≤ i) :
DirectSum.toModule R ι (G j) (fun k => totalize G f k j) x =
@@ -220,7 +231,9 @@ theorem toModule_totalize_of_le {x : DirectSum ι G} {i j : ι} (hij : i ≤ j)
rw [DirectSum.single_eq_lof R k (x k), DirectSum.toModule_lof, DirectSum.toModule_lof,
totalize_of_le (hx k hk), totalize_of_le (le_trans (hx k hk) hij), DirectedSystem.map_map]
#align module.direct_limit.to_module_totalize_of_le Module.DirectLimit.toModule_totalize_of_le
+-/
+#print Module.DirectLimit.of.zero_exact_aux /-
theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : DirectSum ι G}
(H : Submodule.Quotient.mk x = (0 : DirectLimit G f)) :
∃ j,
@@ -254,7 +267,9 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : DirectS
fun a x ⟨i, hi, hxi⟩ =>
⟨i, fun k hk => hi k (DirectSum.support_smul _ _ hk), by simp [LinearMap.map_smul, hxi]⟩
#align module.direct_limit.of.zero_exact_aux Module.DirectLimit.of.zero_exact_aux
+-/
+#print Module.DirectLimit.of.zero_exact /-
/-- A component that corresponds to zero in the direct limit is already zero in some
bigger module in the directed system. -/
theorem of.zero_exact [IsDirected ι (· ≤ ·)] {i x} (H : of R ι G f i x = 0) :
@@ -266,6 +281,7 @@ theorem of.zero_exact [IsDirected ι (· ≤ ·)] {i x} (H : of R ι G f i x = 0
have hij : i ≤ j := hj _ <| by simp [DirectSum.apply_eq_component, hx0]
⟨j, hij, by simpa [totalize_of_le hij] using hxj⟩
#align module.direct_limit.of.zero_exact Module.DirectLimit.of.zero_exact
+-/
end DirectLimit
@@ -275,8 +291,6 @@ namespace AddCommGroup
variable [∀ i, AddCommGroup (G i)]
-include dec_ι
-
#print AddCommGroup.DirectLimit /-
/-- The direct limit of a directed system is the abelian groups glued together along the maps. -/
def DirectLimit (f : ∀ i j, i ≤ j → G i →+ G j) : Type _ :=
@@ -288,14 +302,12 @@ namespace DirectLimit
variable (f : ∀ i j, i ≤ j → G i →+ G j)
-omit dec_ι
-
+#print AddCommGroup.DirectLimit.directedSystem /-
protected theorem directedSystem [h : DirectedSystem G fun i j h => f i j h] :
DirectedSystem G fun i j hij => (f i j hij).toIntLinearMap :=
h
#align add_comm_group.direct_limit.directed_system AddCommGroup.DirectLimit.directedSystem
-
-include dec_ι
+-/
attribute [local instance] direct_limit.directed_system
@@ -305,30 +317,38 @@ instance : AddCommGroup (DirectLimit G f) :=
instance : Inhabited (DirectLimit G f) :=
⟨0⟩
+#print AddCommGroup.DirectLimit.of /-
/-- The canonical map from a component to the direct limit. -/
def of (i) : G i →ₗ[ℤ] DirectLimit G f :=
Module.DirectLimit.of ℤ ι G (fun i j hij => (f i j hij).toIntLinearMap) i
#align add_comm_group.direct_limit.of AddCommGroup.DirectLimit.of
+-/
variable {G f}
+#print AddCommGroup.DirectLimit.of_f /-
@[simp]
theorem of_f {i j} (hij) (x) : of G f j (f i j hij x) = of G f i x :=
Module.DirectLimit.of_f
#align add_comm_group.direct_limit.of_f AddCommGroup.DirectLimit.of_f
+-/
+#print AddCommGroup.DirectLimit.induction_on /-
@[elab_as_elim]
protected theorem induction_on [Nonempty ι] [IsDirected ι (· ≤ ·)] {C : DirectLimit G f → Prop}
(z : DirectLimit G f) (ih : ∀ i x, C (of G f i x)) : C z :=
Module.DirectLimit.induction_on z ih
#align add_comm_group.direct_limit.induction_on AddCommGroup.DirectLimit.induction_on
+-/
+#print AddCommGroup.DirectLimit.of.zero_exact /-
/-- A component that corresponds to zero in the direct limit is already zero in some
bigger module in the directed system. -/
theorem of.zero_exact [IsDirected ι (· ≤ ·)] [DirectedSystem G fun i j h => f i j h] (i x)
(h : of G f i x = 0) : ∃ j hij, f i j hij x = 0 :=
Module.DirectLimit.of.zero_exact h
#align add_comm_group.direct_limit.of.zero_exact AddCommGroup.DirectLimit.of.zero_exact
+-/
variable (P : Type u₁) [AddCommGroup P]
@@ -338,6 +358,7 @@ variable (Hg : ∀ i j hij x, g j (f i j hij x) = g i x)
variable (G f)
+#print AddCommGroup.DirectLimit.lift /-
/-- The universal property of the direct limit: maps from the components to another abelian group
that respect the directed system structure (i.e. make some diagram commute) give rise
to a unique map out of the direct limit. -/
@@ -345,18 +366,23 @@ def lift : DirectLimit G f →ₗ[ℤ] P :=
Module.DirectLimit.lift ℤ ι G (fun i j hij => (f i j hij).toIntLinearMap)
(fun i => (g i).toIntLinearMap) Hg
#align add_comm_group.direct_limit.lift AddCommGroup.DirectLimit.lift
+-/
variable {G f}
+#print AddCommGroup.DirectLimit.lift_of /-
@[simp]
theorem lift_of (i x) : lift G f P g Hg (of G f i x) = g i x :=
Module.DirectLimit.lift_of _ _ _
#align add_comm_group.direct_limit.lift_of AddCommGroup.DirectLimit.lift_of
+-/
+#print AddCommGroup.DirectLimit.lift_unique /-
theorem lift_unique [Nonempty ι] [IsDirected ι (· ≤ ·)] (F : DirectLimit G f →+ P) (x) :
F x = lift G f P (fun i => F.comp (of G f i).toAddMonoidHom) (fun i j hij x => by simp) x :=
DirectLimit.induction_on x fun i x => by simp
#align add_comm_group.direct_limit.lift_unique AddCommGroup.DirectLimit.lift_unique
+-/
end DirectLimit
@@ -410,11 +436,14 @@ def of (i) : G i →+* DirectLimit G f :=
variable {G f}
+#print Ring.DirectLimit.of_f /-
@[simp]
theorem of_f {i j} (hij) (x) : of G f j (f i j hij x) = of G f i x :=
Ideal.Quotient.eq.2 <| subset_span <| Or.inl ⟨i, j, hij, x, rfl⟩
#align ring.direct_limit.of_f Ring.DirectLimit.of_f
+-/
+#print Ring.DirectLimit.exists_of /-
/-- Every element of the direct limit corresponds to some element in
some component of the directed system. -/
theorem exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)] (z : DirectLimit G f) :
@@ -433,6 +462,7 @@ theorem exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)] (z : DirectLimit G f
let ⟨k, hik, hjk⟩ := exists_ge_ge i j
⟨k, f i k hik x + f j k hjk y, by rw [(of _ _ _).map_add, of_f, of_f, ihx, ihy] <;> rfl⟩
#align ring.direct_limit.exists_of Ring.DirectLimit.exists_of
+-/
section
@@ -464,12 +494,14 @@ theorem Polynomial.exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)]
end
+#print Ring.DirectLimit.induction_on /-
@[elab_as_elim]
theorem induction_on [Nonempty ι] [IsDirected ι (· ≤ ·)] {C : DirectLimit G f → Prop}
(z : DirectLimit G f) (ih : ∀ i x, C (of G f i x)) : C z :=
let ⟨i, x, hx⟩ := exists_of z
hx ▸ ih i x
#align ring.direct_limit.induction_on Ring.DirectLimit.induction_on
+-/
section OfZeroExact
@@ -481,6 +513,7 @@ variable [DirectedSystem G fun i j h => f' i j h]
variable (G f)
+#print Ring.DirectLimit.of.zero_exact_aux2 /-
theorem of.zero_exact_aux2 {x : FreeCommRing (Σ i, G i)} {s t} (hxs : IsSupported x s) {j k}
(hj : ∀ z : Σ i, G i, z ∈ s → z.1 ≤ j) (hk : ∀ z : Σ i, G i, z ∈ t → z.1 ≤ k) (hjk : j ≤ k)
(hst : s ⊆ t) :
@@ -508,9 +541,11 @@ theorem of.zero_exact_aux2 {x : FreeCommRing (Σ i, G i)} {s t} (hxs : IsSupport
rw [(restriction _).map_add, (FreeCommRing.lift _).map_add, (f' j k hjk).map_add, ihx, ihy,
(restriction _).map_add, (FreeCommRing.lift _).map_add]
#align ring.direct_limit.of.zero_exact_aux2 Ring.DirectLimit.of.zero_exact_aux2
+-/
variable {G f f'}
+#print Ring.DirectLimit.of.zero_exact_aux /-
theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCommRing (Σ i, G i)}
(H : Ideal.Quotient.mk _ x = (0 : DirectLimit G fun i j h => f' i j h)) :
∃ j s,
@@ -595,7 +630,9 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
of.zero_exact_aux2 G f' hyt hj this hjk (Set.subset_union_right (↑s) t), iht,
(f' j k hjk).map_zero, MulZeroClass.mul_zero]
#align ring.direct_limit.of.zero_exact_aux Ring.DirectLimit.of.zero_exact_aux
+-/
+#print Ring.DirectLimit.of.zero_exact /-
/-- A component that corresponds to zero in the direct limit is already zero in some
bigger module in the directed system. -/
theorem of.zero_exact [IsDirected ι (· ≤ ·)] {i x} (hix : of G (fun i j h => f' i j h) i x = 0) :
@@ -605,11 +642,13 @@ theorem of.zero_exact [IsDirected ι (· ≤ ·)] {i x} (hix : of G (fun i j h =
have hixs : (⟨i, x⟩ : Σ i, G i) ∈ s := is_supported_of.1 hxs
⟨j, H ⟨i, x⟩ hixs, by rw [restriction_of, dif_pos hixs, lift_of] at hx <;> exact hx⟩
#align ring.direct_limit.of.zero_exact Ring.DirectLimit.of.zero_exact
+-/
end OfZeroExact
variable (f' : ∀ i j, i ≤ j → G i →+* G j)
+#print Ring.DirectLimit.of_injective /-
/-- If the maps in the directed system are injective, then the canonical maps
from the components to the direct limits are injective. -/
theorem of_injective [IsDirected ι (· ≤ ·)] [DirectedSystem G fun i j h => f' i j h]
@@ -623,6 +662,7 @@ theorem of_injective [IsDirected ι (· ≤ ·)] [DirectedSystem G fun i j h =>
intro x hx; rcases of.zero_exact hx with ⟨j, hij, hfx⟩
apply hf i j hij; rw [hfx, (f' i j hij).map_zero]
#align ring.direct_limit.of_injective Ring.DirectLimit.of_injective
+-/
variable (P : Type u₁) [CommRing P]
@@ -630,12 +670,11 @@ variable (g : ∀ i, G i →+* P)
variable (Hg : ∀ i j hij x, g j (f i j hij x) = g i x)
-include Hg
-
open FreeCommRing
variable (G f)
+#print Ring.DirectLimit.lift /-
/-- The universal property of the direct limit: maps from the components to another ring
that respect the directed system structure (i.e. make some diagram commute) give rise
to a unique map out of the direct limit.
@@ -652,20 +691,23 @@ def lift : DirectLimit G f →+* P :=
simp only [RingHom.map_sub, lift_of, Hg, RingHom.map_one, RingHom.map_add, RingHom.map_mul,
(g i).map_one, (g i).map_add, (g i).map_mul, sub_self])
#align ring.direct_limit.lift Ring.DirectLimit.lift
+-/
variable {G f}
-omit Hg
-
+#print Ring.DirectLimit.lift_of /-
@[simp]
theorem lift_of (i x) : lift G f P g Hg (of G f i x) = g i x :=
FreeCommRing.lift_of _ _
#align ring.direct_limit.lift_of Ring.DirectLimit.lift_of
+-/
+#print Ring.DirectLimit.lift_unique /-
theorem lift_unique [Nonempty ι] [IsDirected ι (· ≤ ·)] (F : DirectLimit G f →+* P) (x) :
F x = lift G f P (fun i => F.comp <| of G f i) (fun i j hij x => by simp) x :=
DirectLimit.induction_on x fun i x => by simp
#align ring.direct_limit.lift_unique Ring.DirectLimit.lift_unique
+-/
end DirectLimit
@@ -683,6 +725,7 @@ variable (f' : ∀ i j, i ≤ j → G i →+* G j)
namespace DirectLimit
+#print Field.DirectLimit.nontrivial /-
instance nontrivial [DirectedSystem G fun i j h => f' i j h] :
Nontrivial (Ring.DirectLimit G fun i j h => f' i j h) :=
⟨⟨0, 1,
@@ -694,7 +737,9 @@ instance nontrivial [DirectedSystem G fun i j h => f' i j h] :
rw [(f' i j hij).map_one] at hf
exact one_ne_zero hf⟩⟩
#align field.direct_limit.nontrivial Field.DirectLimit.nontrivial
+-/
+#print Field.DirectLimit.exists_inv /-
theorem exists_inv {p : Ring.DirectLimit G f} : p ≠ 0 → ∃ y, p * y = 1 :=
Ring.DirectLimit.induction_on p fun i x H =>
⟨Ring.DirectLimit.of G f i x⁻¹, by
@@ -702,6 +747,7 @@ theorem exists_inv {p : Ring.DirectLimit G f} : p ≠ 0 → ∃ y, p * y = 1 :=
mul_inv_cancel fun h : x = 0 => H <| by rw [h, (Ring.DirectLimit.of _ _ _).map_zero],
(Ring.DirectLimit.of _ _ _).map_one]⟩
#align field.direct_limit.exists_inv Field.DirectLimit.exists_inv
+-/
section
@@ -714,14 +760,19 @@ noncomputable def inv (p : Ring.DirectLimit G f) : Ring.DirectLimit G f :=
#align field.direct_limit.inv Field.DirectLimit.inv
-/
+#print Field.DirectLimit.mul_inv_cancel /-
protected theorem mul_inv_cancel {p : Ring.DirectLimit G f} (hp : p ≠ 0) : p * inv G f p = 1 := by
rw [inv, dif_neg hp, Classical.choose_spec (direct_limit.exists_inv G f hp)]
#align field.direct_limit.mul_inv_cancel Field.DirectLimit.mul_inv_cancel
+-/
+#print Field.DirectLimit.inv_mul_cancel /-
protected theorem inv_mul_cancel {p : Ring.DirectLimit G f} (hp : p ≠ 0) : inv G f p * p = 1 := by
rw [_root_.mul_comm, direct_limit.mul_inv_cancel G f hp]
#align field.direct_limit.inv_mul_cancel Field.DirectLimit.inv_mul_cancel
+-/
+#print Field.DirectLimit.field /-
/-- Noncomputable field structure on the direct limit of fields.
See note [reducible non-instances]. -/
@[reducible]
@@ -734,6 +785,7 @@ protected noncomputable def field [DirectedSystem G fun i j h => f' i j h] :
mul_inv_cancel := fun p => DirectLimit.mul_inv_cancel G fun i j h => f' i j h
inv_zero := dif_pos rfl }
#align field.direct_limit.field Field.DirectLimit.field
+-/
end
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -51,8 +51,8 @@ variable [dec_ι : DecidableEq ι] [Preorder ι]
variable (G : ι → Type w)
#print DirectedSystem /-
-/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`map_self] [] -/
-/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`map_map] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`map_self] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`map_map] [] -/
/-- A directed system is a functor from a category (directed poset) to another category. -/
class DirectedSystem (f : ∀ i j, i ≤ j → G i → G j) : Prop where
map_self : ∀ i x h, f i i h x = x
@@ -88,9 +88,9 @@ include dec_ι
def DirectLimit : Type max v w :=
DirectSum ι G ⧸
(span R <|
- { a |
+ {a |
∃ (i j : _) (H : i ≤ j) (x : _),
- DirectSum.lof R ι G i x - DirectSum.lof R ι G j (f i j H x) = a })
+ DirectSum.lof R ι G i x - DirectSum.lof R ι G j (f i j H x) = a})
#align module.direct_limit Module.DirectLimit
-/
@@ -237,7 +237,7 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : DirectS
· intro i0 hi0
rw [Dfinsupp.mem_support_iff, DirectSum.sub_apply, ← DirectSum.single_eq_lof, ←
DirectSum.single_eq_lof, Dfinsupp.single_apply, Dfinsupp.single_apply] at hi0
- split_ifs at hi0 with hi hj hj; · rwa [hi] at hik ; · rwa [hi] at hik ;
+ split_ifs at hi0 with hi hj hj; · rwa [hi] at hik ; · rwa [hi] at hik ;
· rwa [hj] at hjk
exfalso; apply hi0; rw [sub_zero]
simp [LinearMap.map_sub, totalize_of_le, hik, hjk, DirectedSystem.map_map,
@@ -377,11 +377,11 @@ open FreeCommRing
def DirectLimit : Type max v w :=
FreeCommRing (Σ i, G i) ⧸
Ideal.span
- { a |
+ {a |
(∃ i j H x, of (⟨j, f i j H x⟩ : Σ i, G i) - of ⟨i, x⟩ = a) ∨
(∃ i, of (⟨i, 1⟩ : Σ i, G i) - 1 = a) ∨
(∃ i x y, of (⟨i, x + y⟩ : Σ i, G i) - (of ⟨i, x⟩ + of ⟨i, y⟩) = a) ∨
- ∃ i x y, of (⟨i, x * y⟩ : Σ i, G i) - of ⟨i, x⟩ * of ⟨i, y⟩ = a }
+ ∃ i x y, of (⟨i, x * y⟩ : Σ i, G i) - of ⟨i, x⟩ * of ⟨i, y⟩ = a}
#align ring.direct_limit Ring.DirectLimit
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -89,7 +89,7 @@ def DirectLimit : Type max v w :=
DirectSum ι G ⧸
(span R <|
{ a |
- ∃ (i j : _)(H : i ≤ j)(x : _),
+ ∃ (i j : _) (H : i ≤ j) (x : _),
DirectSum.lof R ι G i x - DirectSum.lof R ι G j (f i j H x) = a })
#align module.direct_limit Module.DirectLimit
-/
@@ -236,8 +236,9 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : DirectS
constructor
· intro i0 hi0
rw [Dfinsupp.mem_support_iff, DirectSum.sub_apply, ← DirectSum.single_eq_lof, ←
- DirectSum.single_eq_lof, Dfinsupp.single_apply, Dfinsupp.single_apply] at hi0
- split_ifs at hi0 with hi hj hj; · rwa [hi] at hik; · rwa [hi] at hik; · rwa [hj] at hjk
+ DirectSum.single_eq_lof, Dfinsupp.single_apply, Dfinsupp.single_apply] at hi0
+ split_ifs at hi0 with hi hj hj; · rwa [hi] at hik ; · rwa [hi] at hik ;
+ · rwa [hj] at hjk
exfalso; apply hi0; rw [sub_zero]
simp [LinearMap.map_sub, totalize_of_le, hik, hjk, DirectedSystem.map_map,
DirectSum.apply_eq_component, DirectSum.component.of]⟩)
@@ -374,13 +375,13 @@ open FreeCommRing
#print Ring.DirectLimit /-
/-- The direct limit of a directed system is the rings glued together along the maps. -/
def DirectLimit : Type max v w :=
- FreeCommRing (Σi, G i) ⧸
+ FreeCommRing (Σ i, G i) ⧸
Ideal.span
{ a |
- (∃ i j H x, of (⟨j, f i j H x⟩ : Σi, G i) - of ⟨i, x⟩ = a) ∨
- (∃ i, of (⟨i, 1⟩ : Σi, G i) - 1 = a) ∨
- (∃ i x y, of (⟨i, x + y⟩ : Σi, G i) - (of ⟨i, x⟩ + of ⟨i, y⟩) = a) ∨
- ∃ i x y, of (⟨i, x * y⟩ : Σi, G i) - of ⟨i, x⟩ * of ⟨i, y⟩ = a }
+ (∃ i j H x, of (⟨j, f i j H x⟩ : Σ i, G i) - of ⟨i, x⟩ = a) ∨
+ (∃ i, of (⟨i, 1⟩ : Σ i, G i) - 1 = a) ∨
+ (∃ i x y, of (⟨i, x + y⟩ : Σ i, G i) - (of ⟨i, x⟩ + of ⟨i, y⟩) = a) ∨
+ ∃ i x y, of (⟨i, x * y⟩ : Σ i, G i) - of ⟨i, x⟩ * of ⟨i, y⟩ = a }
#align ring.direct_limit Ring.DirectLimit
-/
@@ -399,7 +400,7 @@ instance : Inhabited (DirectLimit G f) :=
/-- The canonical map from a component to the direct limit. -/
def of (i) : G i →+* DirectLimit G f :=
RingHom.mk'
- { toFun := fun x => Ideal.Quotient.mk _ (of (⟨i, x⟩ : Σi, G i))
+ { toFun := fun x => Ideal.Quotient.mk _ (of (⟨i, x⟩ : Σ i, G i))
map_one' := Ideal.Quotient.eq.2 <| subset_span <| Or.inr <| Or.inl ⟨i, rfl⟩
map_mul' := fun x y =>
Ideal.Quotient.eq.2 <| subset_span <| Or.inr <| Or.inr <| Or.inr ⟨i, x, y, rfl⟩ }
@@ -480,8 +481,8 @@ variable [DirectedSystem G fun i j h => f' i j h]
variable (G f)
-theorem of.zero_exact_aux2 {x : FreeCommRing (Σi, G i)} {s t} (hxs : IsSupported x s) {j k}
- (hj : ∀ z : Σi, G i, z ∈ s → z.1 ≤ j) (hk : ∀ z : Σi, G i, z ∈ t → z.1 ≤ k) (hjk : j ≤ k)
+theorem of.zero_exact_aux2 {x : FreeCommRing (Σ i, G i)} {s t} (hxs : IsSupported x s) {j k}
+ (hj : ∀ z : Σ i, G i, z ∈ s → z.1 ≤ j) (hk : ∀ z : Σ i, G i, z ∈ t → z.1 ≤ k) (hjk : j ≤ k)
(hst : s ⊆ t) :
f' j k hjk (lift (fun ix : s => f' ix.1.1 j (hj ix ix.2) ix.1.2) (restriction s x)) =
lift (fun ix : t => f' ix.1.1 k (hk ix ix.2) ix.1.2) (restriction t x) :=
@@ -501,7 +502,7 @@ theorem of.zero_exact_aux2 {x : FreeCommRing (Σi, G i)} {s t} (hxs : IsSupporte
restriction_of, dif_pos (hst hps), lift_of]
dsimp only
have := DirectedSystem.map_map fun i j h => f' i j h
- dsimp only at this
+ dsimp only at this
rw [this]; rfl
· rintro x y ihx ihy
rw [(restriction _).map_add, (FreeCommRing.lift _).map_add, (f' j k hjk).map_add, ihx, ihy,
@@ -510,10 +511,10 @@ theorem of.zero_exact_aux2 {x : FreeCommRing (Σi, G i)} {s t} (hxs : IsSupporte
variable {G f f'}
-theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCommRing (Σi, G i)}
+theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCommRing (Σ i, G i)}
(H : Ideal.Quotient.mk _ x = (0 : DirectLimit G fun i j h => f' i j h)) :
∃ j s,
- ∃ H : ∀ k : Σi, G i, k ∈ s → k.1 ≤ j,
+ ∃ H : ∀ k : Σ i, G i, k ∈ s → k.1 ≤ j,
IsSupported x s ∧
lift (fun ix : s => f' ix.1.1 j (H ix ix.2) ix.1.2) (restriction s x) = (0 : G j) :=
by
@@ -527,9 +528,9 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
restriction_of, dif_pos, lift_of, lift_of]
dsimp only
have := DirectedSystem.map_map fun i j h => f' i j h
- dsimp only at this
+ dsimp only at this
rw [this]; exact sub_self _
- exacts[Or.inr rfl, Or.inl rfl]
+ exacts [Or.inr rfl, Or.inl rfl]
· refine' ⟨i, {⟨i, 1⟩}, _, is_supported_sub (is_supported_of.2 rfl) is_supported_one, _⟩
· rintro k (rfl | h); rfl
· rw [(restriction _).map_sub, (FreeCommRing.lift _).map_sub, restriction_of, dif_pos,
@@ -547,7 +548,7 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
restriction_of, dif_pos, dif_pos, dif_pos, (FreeCommRing.lift _).map_sub,
(FreeCommRing.lift _).map_add, lift_of, lift_of, lift_of]
dsimp only; rw [(f' i i _).map_add]; exact sub_self _
- exacts[Or.inl rfl, Or.inr (Or.inr rfl), Or.inr (Or.inl rfl)]
+ exacts [Or.inl rfl, Or.inr (Or.inr rfl), Or.inr (Or.inl rfl)]
· refine'
⟨i, {⟨i, x * y⟩, ⟨i, x⟩, ⟨i, y⟩}, _,
is_supported_sub (is_supported_of.2 <| Or.inl rfl)
@@ -559,13 +560,13 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
restriction_of, dif_pos, dif_pos, dif_pos, (FreeCommRing.lift _).map_sub,
(FreeCommRing.lift _).map_mul, lift_of, lift_of, lift_of]
dsimp only; rw [(f' i i _).map_mul]
- exacts[sub_self _, Or.inl rfl, Or.inr (Or.inr rfl), Or.inr (Or.inl rfl)]
+ exacts [sub_self _, Or.inl rfl, Or.inr (Or.inr rfl), Or.inr (Or.inl rfl)]
· refine' Nonempty.elim (by infer_instance) fun ind : ι => _
refine' ⟨ind, ∅, fun _ => False.elim, is_supported_zero, _⟩
rw [(restriction _).map_zero, (FreeCommRing.lift _).map_zero]
· rintro x y ⟨i, s, hi, hxs, ihs⟩ ⟨j, t, hj, hyt, iht⟩
obtain ⟨k, hik, hjk⟩ := exists_ge_ge i j
- have : ∀ z : Σi, G i, z ∈ s ∪ t → z.1 ≤ k := by rintro z (hz | hz);
+ have : ∀ z : Σ i, G i, z ∈ s ∪ t → z.1 ≤ k := by rintro z (hz | hz);
exact le_trans (hi z hz) hik; exact le_trans (hj z hz) hjk
refine'
⟨k, s ∪ t, this,
@@ -581,10 +582,10 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
rcases exists_finset_support x with ⟨s, hxs⟩
rcases(s.image Sigma.fst).exists_le with ⟨i, hi⟩
obtain ⟨k, hik, hjk⟩ := exists_ge_ge i j
- have : ∀ z : Σi, G i, z ∈ ↑s ∪ t → z.1 ≤ k :=
+ have : ∀ z : Σ i, G i, z ∈ ↑s ∪ t → z.1 ≤ k :=
by
rintro z (hz | hz)
- exacts[(hi z.1 <| Finset.mem_image.2 ⟨z, hz, rfl⟩).trans hik, (hj z hz).trans hjk]
+ exacts [(hi z.1 <| Finset.mem_image.2 ⟨z, hz, rfl⟩).trans hik, (hj z hz).trans hjk]
refine'
⟨k, ↑s ∪ t, this,
is_supported_mul (is_supported_upwards hxs <| Set.subset_union_left (↑s) t)
@@ -598,11 +599,11 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
/-- A component that corresponds to zero in the direct limit is already zero in some
bigger module in the directed system. -/
theorem of.zero_exact [IsDirected ι (· ≤ ·)] {i x} (hix : of G (fun i j h => f' i j h) i x = 0) :
- ∃ (j : _)(hij : i ≤ j), f' i j hij x = 0 :=
+ ∃ (j : _) (hij : i ≤ j), f' i j hij x = 0 :=
haveI : Nonempty ι := ⟨i⟩
let ⟨j, s, H, hxs, hx⟩ := of.zero_exact_aux hix
- have hixs : (⟨i, x⟩ : Σi, G i) ∈ s := is_supported_of.1 hxs
- ⟨j, H ⟨i, x⟩ hixs, by rw [restriction_of, dif_pos hixs, lift_of] at hx <;> exact hx⟩
+ have hixs : (⟨i, x⟩ : Σ i, G i) ∈ s := is_supported_of.1 hxs
+ ⟨j, H ⟨i, x⟩ hixs, by rw [restriction_of, dif_pos hixs, lift_of] at hx <;> exact hx⟩
#align ring.direct_limit.of.zero_exact Ring.DirectLimit.of.zero_exact
end OfZeroExact
@@ -640,10 +641,11 @@ that respect the directed system structure (i.e. make some diagram commute) give
to a unique map out of the direct limit.
-/
def lift : DirectLimit G f →+* P :=
- Ideal.Quotient.lift _ (FreeCommRing.lift fun x : Σi, G i => g x.1 x.2)
+ Ideal.Quotient.lift _ (FreeCommRing.lift fun x : Σ i, G i => g x.1 x.2)
(by
- suffices Ideal.span _ ≤ Ideal.comap (FreeCommRing.lift fun x : Σi : ι, G i => g x.fst x.snd) ⊥
- by intro x hx; exact (mem_bot P).1 (this hx)
+ suffices
+ Ideal.span _ ≤ Ideal.comap (FreeCommRing.lift fun x : Σ i : ι, G i => g x.fst x.snd) ⊥ by
+ intro x hx; exact (mem_bot P).1 (this hx)
rw [Ideal.span_le]; intro x hx
rw [SetLike.mem_coe, Ideal.mem_comap, mem_bot]
rcases hx with (⟨i, j, hij, x, rfl⟩ | ⟨i, rfl⟩ | ⟨i, x, y, rfl⟩ | ⟨i, x, y, rfl⟩) <;>
@@ -689,7 +691,7 @@ instance nontrivial [DirectedSystem G fun i j h => f' i j h] :
change (0 : Ring.DirectLimit G fun i j h => f' i j h) ≠ 1
rw [← (Ring.DirectLimit.of _ _ _).map_one]
intro H; rcases Ring.DirectLimit.of.zero_exact H.symm with ⟨j, hij, hf⟩
- rw [(f' i j hij).map_one] at hf
+ rw [(f' i j hij).map_one] at hf
exact one_ne_zero hf⟩⟩
#align field.direct_limit.nontrivial Field.DirectLimit.nontrivial
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -50,6 +50,7 @@ variable [dec_ι : DecidableEq ι] [Preorder ι]
variable (G : ι → Type w)
+#print DirectedSystem /-
/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`map_self] [] -/
/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`map_map] [] -/
/-- A directed system is a functor from a category (directed poset) to another category. -/
@@ -57,6 +58,7 @@ class DirectedSystem (f : ∀ i j, i ≤ j → G i → G j) : Prop where
map_self : ∀ i x h, f i i h x = x
map_map : ∀ {i j k} (hij hjk x), f j k hjk (f i j hij x) = f i k (le_trans hij hjk) x
#align directed_system DirectedSystem
+-/
namespace Module
@@ -81,6 +83,7 @@ variable (G)
include dec_ι
+#print Module.DirectLimit /-
/-- The direct limit of a directed system is the modules glued together along the maps. -/
def DirectLimit : Type max v w :=
DirectSum ι G ⧸
@@ -89,6 +92,7 @@ def DirectLimit : Type max v w :=
∃ (i j : _)(H : i ≤ j)(x : _),
DirectSum.lof R ι G i x - DirectSum.lof R ι G j (f i j H x) = a })
#align module.direct_limit Module.DirectLimit
+-/
namespace DirectLimit
@@ -103,10 +107,12 @@ instance : Inhabited (DirectLimit G f) :=
variable (R ι)
+#print Module.DirectLimit.of /-
/-- The canonical map from a component to the direct limit. -/
def of (i) : G i →ₗ[R] DirectLimit G f :=
(mkQ _).comp <| DirectSum.lof R ι G i
#align module.direct_limit.of Module.DirectLimit.of
+-/
variable {R ι G f}
@@ -169,24 +175,28 @@ theorem lift_unique [Nonempty ι] [IsDirected ι (· ≤ ·)] (F : DirectLimit G
section Totalize
-open Classical
+open scoped Classical
variable (G f)
omit dec_ι
+#print Module.DirectLimit.totalize /-
/-- `totalize G f i j` is a linear map from `G i` to `G j`, for *every* `i` and `j`.
If `i ≤ j`, then it is the map `f i j` that comes with the directed system `G`,
and otherwise it is the zero map. -/
noncomputable def totalize (i j) : G i →ₗ[R] G j :=
if h : i ≤ j then f i j h else 0
#align module.direct_limit.totalize Module.DirectLimit.totalize
+-/
variable {G f}
+#print Module.DirectLimit.totalize_of_le /-
theorem totalize_of_le {i j} (h : i ≤ j) : totalize G f i j = f i j h :=
dif_pos h
#align module.direct_limit.totalize_of_le Module.DirectLimit.totalize_of_le
+-/
theorem totalize_of_not_le {i j} (h : ¬i ≤ j) : totalize G f i j = 0 :=
dif_neg h
@@ -196,7 +206,7 @@ end Totalize
variable [DirectedSystem G fun i j h => f i j h]
-open Classical
+open scoped Classical
theorem toModule_totalize_of_le {x : DirectSum ι G} {i j : ι} (hij : i ≤ j)
(hx : ∀ k ∈ x.support, k ≤ i) :
@@ -266,10 +276,12 @@ variable [∀ i, AddCommGroup (G i)]
include dec_ι
+#print AddCommGroup.DirectLimit /-
/-- The direct limit of a directed system is the abelian groups glued together along the maps. -/
def DirectLimit (f : ∀ i j, i ≤ j → G i →+ G j) : Type _ :=
@Module.DirectLimit ℤ _ ι _ _ G _ _ fun i j hij => (f i j hij).toIntLinearMap
#align add_comm_group.direct_limit AddCommGroup.DirectLimit
+-/
namespace DirectLimit
@@ -359,6 +371,7 @@ variable (f : ∀ i j, i ≤ j → G i → G j)
open FreeCommRing
+#print Ring.DirectLimit /-
/-- The direct limit of a directed system is the rings glued together along the maps. -/
def DirectLimit : Type max v w :=
FreeCommRing (Σi, G i) ⧸
@@ -369,6 +382,7 @@ def DirectLimit : Type max v w :=
(∃ i x y, of (⟨i, x + y⟩ : Σi, G i) - (of ⟨i, x⟩ + of ⟨i, y⟩) = a) ∨
∃ i x y, of (⟨i, x * y⟩ : Σi, G i) - of ⟨i, x⟩ * of ⟨i, y⟩ = a }
#align ring.direct_limit Ring.DirectLimit
+-/
namespace DirectLimit
@@ -381,6 +395,7 @@ instance : Ring (DirectLimit G f) :=
instance : Inhabited (DirectLimit G f) :=
⟨0⟩
+#print Ring.DirectLimit.of /-
/-- The canonical map from a component to the direct limit. -/
def of (i) : G i →+* DirectLimit G f :=
RingHom.mk'
@@ -390,6 +405,7 @@ def of (i) : G i →+* DirectLimit G f :=
Ideal.Quotient.eq.2 <| subset_span <| Or.inr <| Or.inr <| Or.inr ⟨i, x, y, rfl⟩ }
fun x y => Ideal.Quotient.eq.2 <| subset_span <| Or.inr <| Or.inr <| Or.inl ⟨i, x, y, rfl⟩
#align ring.direct_limit.of Ring.DirectLimit.of
+-/
variable {G f}
@@ -419,12 +435,13 @@ theorem exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)] (z : DirectLimit G f
section
-open Classical
+open scoped Classical
open Polynomial
variable {f' : ∀ i j, i ≤ j → G i →+* G j}
+#print Ring.DirectLimit.Polynomial.exists_of /-
theorem Polynomial.exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)]
(q : Polynomial (DirectLimit G fun i j h => f' i j h)) :
∃ i p, Polynomial.map (of G (fun i j h => f' i j h) i) p = q :=
@@ -442,6 +459,7 @@ theorem Polynomial.exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)]
let ⟨i, x, h⟩ := exists_of z
⟨i, C x * X ^ (n + 1), by rw [Polynomial.map_mul, map_C, h, Polynomial.map_pow, map_X]⟩
#align ring.direct_limit.polynomial.exists_of Ring.DirectLimit.Polynomial.exists_of
+-/
end
@@ -454,7 +472,7 @@ theorem induction_on [Nonempty ι] [IsDirected ι (· ≤ ·)] {C : DirectLimit
section OfZeroExact
-open Classical
+open scoped Classical
variable (f' : ∀ i j, i ≤ j → G i →+* G j)
@@ -685,12 +703,14 @@ theorem exists_inv {p : Ring.DirectLimit G f} : p ≠ 0 → ∃ y, p * y = 1 :=
section
-open Classical
+open scoped Classical
+#print Field.DirectLimit.inv /-
/-- Noncomputable multiplicative inverse in a direct limit of fields. -/
noncomputable def inv (p : Ring.DirectLimit G f) : Ring.DirectLimit G f :=
if H : p = 0 then 0 else Classical.choose (DirectLimit.exists_inv G f H)
#align field.direct_limit.inv Field.DirectLimit.inv
+-/
protected theorem mul_inv_cancel {p : Ring.DirectLimit G f} (hp : p ≠ 0) : p * inv G f p = 1 := by
rw [inv, dif_neg hp, Classical.choose_spec (direct_limit.exists_inv G f hp)]
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -50,12 +50,6 @@ variable [dec_ι : DecidableEq ι] [Preorder ι]
variable (G : ι → Type w)
-/- warning: directed_system -> DirectedSystem is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}), (forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (G i) -> (G j)) -> Prop
-but is expected to have type
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}), (forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (G i) -> (G j)) -> Prop
-Case conversion may be inaccurate. Consider using '#align directed_system DirectedSystemₓ'. -/
/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`map_self] [] -/
/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`map_map] [] -/
/-- A directed system is a functor from a category (directed poset) to another category. -/
@@ -70,18 +64,12 @@ variable [∀ i, AddCommGroup (G i)] [∀ i, Module R (G i)]
variable {G} (f : ∀ i j, i ≤ j → G i →ₗ[R] G j)
-/- warning: module.directed_system.map_self -> Module.DirectedSystem.map_self is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align module.directed_system.map_self Module.DirectedSystem.map_selfₓ'. -/
/-- A copy of `directed_system.map_self` specialized to linear maps, as otherwise the
`λ i j h, f i j h` can confuse the simplifier. -/
theorem DirectedSystem.map_self [DirectedSystem G fun i j h => f i j h] (i x h) : f i i h x = x :=
DirectedSystem.map_self (fun i j h => f i j h) i x h
#align module.directed_system.map_self Module.DirectedSystem.map_self
-/- warning: module.directed_system.map_map -> Module.DirectedSystem.map_map is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align module.directed_system.map_map Module.DirectedSystem.map_mapₓ'. -/
/-- A copy of `directed_system.map_map` specialized to linear maps, as otherwise the
`λ i j h, f i j h` can confuse the simplifier. -/
theorem DirectedSystem.map_map [DirectedSystem G fun i j h => f i j h] {i j k} (hij hjk x) :
@@ -93,12 +81,6 @@ variable (G)
include dec_ι
-/- warning: module.direct_limit -> Module.DirectLimit is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] (G : ι -> Type.{u3}) [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))], (forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))) -> Type.{max u2 u3}
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] (G : ι -> Type.{u3}) [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))], (forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))) -> Type.{max u2 u3}
-Case conversion may be inaccurate. Consider using '#align module.direct_limit Module.DirectLimitₓ'. -/
/-- The direct limit of a directed system is the modules glued together along the maps. -/
def DirectLimit : Type max v w :=
DirectSum ι G ⧸
@@ -121,9 +103,6 @@ instance : Inhabited (DirectLimit G f) :=
variable (R ι)
-/- warning: module.direct_limit.of -> Module.DirectLimit.of is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align module.direct_limit.of Module.DirectLimit.ofₓ'. -/
/-- The canonical map from a component to the direct limit. -/
def of (i) : G i →ₗ[R] DirectLimit G f :=
(mkQ _).comp <| DirectSum.lof R ι G i
@@ -131,17 +110,11 @@ def of (i) : G i →ₗ[R] DirectLimit G f :=
variable {R ι G f}
-/- warning: module.direct_limit.of_f -> Module.DirectLimit.of_f is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align module.direct_limit.of_f Module.DirectLimit.of_fₓ'. -/
@[simp]
theorem of_f {i j hij x} : of R ι G f j (f i j hij x) = of R ι G f i x :=
Eq.symm <| (Submodule.Quotient.eq _).2 <| subset_span ⟨i, j, hij, x, rfl⟩
#align module.direct_limit.of_f Module.DirectLimit.of_f
-/- warning: module.direct_limit.exists_of -> Module.DirectLimit.exists_of is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align module.direct_limit.exists_of Module.DirectLimit.exists_ofₓ'. -/
/-- Every element of the direct limit corresponds to some element in
some component of the directed system. -/
theorem exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)] (z : DirectLimit G f) :
@@ -154,9 +127,6 @@ theorem exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)] (z : DirectLimit G f
⟨k, f i k hik x + f j k hjk y, by rw [LinearMap.map_add, of_f, of_f, ihx, ihy] <;> rfl⟩
#align module.direct_limit.exists_of Module.DirectLimit.exists_of
-/- warning: module.direct_limit.induction_on -> Module.DirectLimit.induction_on is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align module.direct_limit.induction_on Module.DirectLimit.induction_onₓ'. -/
@[elab_as_elim]
protected theorem induction_on [Nonempty ι] [IsDirected ι (· ≤ ·)] {C : DirectLimit G f → Prop}
(z : DirectLimit G f) (ih : ∀ i x, C (of R ι G f i x)) : C z :=
@@ -172,9 +142,6 @@ include Hg
variable (R ι G f)
-/- warning: module.direct_limit.lift -> Module.DirectLimit.lift is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align module.direct_limit.lift Module.DirectLimit.liftₓ'. -/
/-- The universal property of the direct limit: maps from the components to another module
that respect the directed system structure (i.e. make some diagram commute) give rise
to a unique map out of the direct limit. -/
@@ -189,16 +156,10 @@ variable {R ι G f}
omit Hg
-/- warning: module.direct_limit.lift_of -> Module.DirectLimit.lift_of is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align module.direct_limit.lift_of Module.DirectLimit.lift_ofₓ'. -/
theorem lift_of {i} (x) : lift R ι G f g Hg (of R ι G f i x) = g i x :=
DirectSum.toModule_lof R _ _
#align module.direct_limit.lift_of Module.DirectLimit.lift_of
-/- warning: module.direct_limit.lift_unique -> Module.DirectLimit.lift_unique is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align module.direct_limit.lift_unique Module.DirectLimit.lift_uniqueₓ'. -/
theorem lift_unique [Nonempty ι] [IsDirected ι (· ≤ ·)] (F : DirectLimit G f →ₗ[R] P) (x) :
F x =
lift R ι G f (fun i => F.comp <| of R ι G f i)
@@ -214,12 +175,6 @@ variable (G f)
omit dec_ι
-/- warning: module.direct_limit.totalize -> Module.DirectLimit.totalize is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [_inst_2 : Preorder.{u2} ι] (G : ι -> Type.{u3}) [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))], (forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))) -> (forall (i : ι) (j : ι), LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [_inst_2 : Preorder.{u2} ι] (G : ι -> Type.{u3}) [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))], (forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))) -> (forall (i : ι) (j : ι), LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))
-Case conversion may be inaccurate. Consider using '#align module.direct_limit.totalize Module.DirectLimit.totalizeₓ'. -/
/-- `totalize G f i j` is a linear map from `G i` to `G j`, for *every* `i` and `j`.
If `i ≤ j`, then it is the map `f i j` that comes with the directed system `G`,
and otherwise it is the zero map. -/
@@ -229,22 +184,10 @@ noncomputable def totalize (i j) : G i →ₗ[R] G j :=
variable {G f}
-/- warning: module.direct_limit.totalize_of_le -> Module.DirectLimit.totalize_of_le is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} {i : ι} {j : ι} (h : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j), Eq.{succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (Module.DirectLimit.totalize.{u1, u2, u3} R _inst_1 ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i j) (f i j h)
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} {i : ι} {j : ι} (h : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j), Eq.{succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (Module.DirectLimit.totalize.{u1, u2, u3} R _inst_1 ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i j) (f i j h)
-Case conversion may be inaccurate. Consider using '#align module.direct_limit.totalize_of_le Module.DirectLimit.totalize_of_leₓ'. -/
theorem totalize_of_le {i j} (h : i ≤ j) : totalize G f i j = f i j h :=
dif_pos h
#align module.direct_limit.totalize_of_le Module.DirectLimit.totalize_of_le
-/- warning: module.direct_limit.totalize_of_not_le -> Module.DirectLimit.totalize_of_not_le is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} {i : ι} {j : ι}, (Not (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j)) -> (Eq.{succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (Module.DirectLimit.totalize.{u1, u2, u3} R _inst_1 ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i j) (OfNat.ofNat.{u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) 0 (OfNat.mk.{u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) 0 (Zero.zero.{u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (LinearMap.hasZero.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))))))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} {i : ι} {j : ι}, (Not (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j)) -> (Eq.{succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (Module.DirectLimit.totalize.{u1, u2, u3} R _inst_1 ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i j) (OfNat.ofNat.{u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) 0 (Zero.toOfNat0.{u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (LinearMap.instZeroLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))))))
-Case conversion may be inaccurate. Consider using '#align module.direct_limit.totalize_of_not_le Module.DirectLimit.totalize_of_not_leₓ'. -/
theorem totalize_of_not_le {i j} (h : ¬i ≤ j) : totalize G f i j = 0 :=
dif_neg h
#align module.direct_limit.totalize_of_not_le Module.DirectLimit.totalize_of_not_le
@@ -255,9 +198,6 @@ variable [DirectedSystem G fun i j h => f i j h]
open Classical
-/- warning: module.direct_limit.to_module_totalize_of_le -> Module.DirectLimit.toModule_totalize_of_le is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align module.direct_limit.to_module_totalize_of_le Module.DirectLimit.toModule_totalize_of_leₓ'. -/
theorem toModule_totalize_of_le {x : DirectSum ι G} {i j : ι} (hij : i ≤ j)
(hx : ∀ k ∈ x.support, k ≤ i) :
DirectSum.toModule R ι (G j) (fun k => totalize G f k j) x =
@@ -271,9 +211,6 @@ theorem toModule_totalize_of_le {x : DirectSum ι G} {i j : ι} (hij : i ≤ j)
totalize_of_le (hx k hk), totalize_of_le (le_trans (hx k hk) hij), DirectedSystem.map_map]
#align module.direct_limit.to_module_totalize_of_le Module.DirectLimit.toModule_totalize_of_le
-/- warning: module.direct_limit.of.zero_exact_aux -> Module.DirectLimit.of.zero_exact_aux is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align module.direct_limit.of.zero_exact_aux Module.DirectLimit.of.zero_exact_auxₓ'. -/
theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : DirectSum ι G}
(H : Submodule.Quotient.mk x = (0 : DirectLimit G f)) :
∃ j,
@@ -307,9 +244,6 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : DirectS
⟨i, fun k hk => hi k (DirectSum.support_smul _ _ hk), by simp [LinearMap.map_smul, hxi]⟩
#align module.direct_limit.of.zero_exact_aux Module.DirectLimit.of.zero_exact_aux
-/- warning: module.direct_limit.of.zero_exact -> Module.DirectLimit.of.zero_exact is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align module.direct_limit.of.zero_exact Module.DirectLimit.of.zero_exactₓ'. -/
/-- A component that corresponds to zero in the direct limit is already zero in some
bigger module in the directed system. -/
theorem of.zero_exact [IsDirected ι (· ≤ ·)] {i x} (H : of R ι G f i x = 0) :
@@ -332,12 +266,6 @@ variable [∀ i, AddCommGroup (G i)]
include dec_ι
-/- warning: add_comm_group.direct_limit -> AddCommGroup.DirectLimit is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)], (forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))) -> Type.{max u1 u2}
-but is expected to have type
- forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)], (forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))) -> Type.{max u2 u1}
-Case conversion may be inaccurate. Consider using '#align add_comm_group.direct_limit AddCommGroup.DirectLimitₓ'. -/
/-- The direct limit of a directed system is the abelian groups glued together along the maps. -/
def DirectLimit (f : ∀ i j, i ≤ j → G i →+ G j) : Type _ :=
@Module.DirectLimit ℤ _ ι _ _ G _ _ fun i j hij => (f i j hij).toIntLinearMap
@@ -349,12 +277,6 @@ variable (f : ∀ i j, i ≤ j → G i →+ G j)
omit dec_ι
-/- warning: add_comm_group.direct_limit.directed_system -> AddCommGroup.DirectLimit.directedSystem is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))) [h : DirectedSystem.{u1, u2} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (f i j h))], DirectedSystem.{u1, u2} ι _inst_2 G (fun (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) (_inst_3 i) (_inst_3 j) (f i j hij)))
-but is expected to have type
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))) [h : DirectedSystem.{u1, u2} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) _x) (AddHomClass.toFunLike.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddMonoidHomClass.toAddHomClass.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoidHom.addMonoidHomClass.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))))) (f i j h))], DirectedSystem.{u1, u2} ι _inst_2 G (fun (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, u2} Int Int (G i) (G j) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) (_inst_3 i) (_inst_3 j) (f i j hij)))
-Case conversion may be inaccurate. Consider using '#align add_comm_group.direct_limit.directed_system AddCommGroup.DirectLimit.directedSystemₓ'. -/
protected theorem directedSystem [h : DirectedSystem G fun i j h => f i j h] :
DirectedSystem G fun i j hij => (f i j hij).toIntLinearMap :=
h
@@ -370,9 +292,6 @@ instance : AddCommGroup (DirectLimit G f) :=
instance : Inhabited (DirectLimit G f) :=
⟨0⟩
-/- warning: add_comm_group.direct_limit.of -> AddCommGroup.DirectLimit.of is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_comm_group.direct_limit.of AddCommGroup.DirectLimit.ofₓ'. -/
/-- The canonical map from a component to the direct limit. -/
def of (i) : G i →ₗ[ℤ] DirectLimit G f :=
Module.DirectLimit.of ℤ ι G (fun i j hij => (f i j hij).toIntLinearMap) i
@@ -380,26 +299,17 @@ def of (i) : G i →ₗ[ℤ] DirectLimit G f :=
variable {G f}
-/- warning: add_comm_group.direct_limit.of_f -> AddCommGroup.DirectLimit.of_f is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_comm_group.direct_limit.of_f AddCommGroup.DirectLimit.of_fₓ'. -/
@[simp]
theorem of_f {i j} (hij) (x) : of G f j (f i j hij x) = of G f i x :=
Module.DirectLimit.of_f
#align add_comm_group.direct_limit.of_f AddCommGroup.DirectLimit.of_f
-/- warning: add_comm_group.direct_limit.induction_on -> AddCommGroup.DirectLimit.induction_on is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_comm_group.direct_limit.induction_on AddCommGroup.DirectLimit.induction_onₓ'. -/
@[elab_as_elim]
protected theorem induction_on [Nonempty ι] [IsDirected ι (· ≤ ·)] {C : DirectLimit G f → Prop}
(z : DirectLimit G f) (ih : ∀ i x, C (of G f i x)) : C z :=
Module.DirectLimit.induction_on z ih
#align add_comm_group.direct_limit.induction_on AddCommGroup.DirectLimit.induction_on
-/- warning: add_comm_group.direct_limit.of.zero_exact -> AddCommGroup.DirectLimit.of.zero_exact is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_comm_group.direct_limit.of.zero_exact AddCommGroup.DirectLimit.of.zero_exactₓ'. -/
/-- A component that corresponds to zero in the direct limit is already zero in some
bigger module in the directed system. -/
theorem of.zero_exact [IsDirected ι (· ≤ ·)] [DirectedSystem G fun i j h => f i j h] (i x)
@@ -415,9 +325,6 @@ variable (Hg : ∀ i j hij x, g j (f i j hij x) = g i x)
variable (G f)
-/- warning: add_comm_group.direct_limit.lift -> AddCommGroup.DirectLimit.lift is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_comm_group.direct_limit.lift AddCommGroup.DirectLimit.liftₓ'. -/
/-- The universal property of the direct limit: maps from the components to another abelian group
that respect the directed system structure (i.e. make some diagram commute) give rise
to a unique map out of the direct limit. -/
@@ -428,17 +335,11 @@ def lift : DirectLimit G f →ₗ[ℤ] P :=
variable {G f}
-/- warning: add_comm_group.direct_limit.lift_of -> AddCommGroup.DirectLimit.lift_of is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_comm_group.direct_limit.lift_of AddCommGroup.DirectLimit.lift_ofₓ'. -/
@[simp]
theorem lift_of (i x) : lift G f P g Hg (of G f i x) = g i x :=
Module.DirectLimit.lift_of _ _ _
#align add_comm_group.direct_limit.lift_of AddCommGroup.DirectLimit.lift_of
-/- warning: add_comm_group.direct_limit.lift_unique -> AddCommGroup.DirectLimit.lift_unique is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_comm_group.direct_limit.lift_unique AddCommGroup.DirectLimit.lift_uniqueₓ'. -/
theorem lift_unique [Nonempty ι] [IsDirected ι (· ≤ ·)] (F : DirectLimit G f →+ P) (x) :
F x = lift G f P (fun i => F.comp (of G f i).toAddMonoidHom) (fun i j hij x => by simp) x :=
DirectLimit.induction_on x fun i x => by simp
@@ -458,12 +359,6 @@ variable (f : ∀ i j, i ≤ j → G i → G j)
open FreeCommRing
-/- warning: ring.direct_limit -> Ring.DirectLimit is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), CommRing.{u2} (G i)], (forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (G i) -> (G j)) -> Type.{max u1 u2}
-but is expected to have type
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), CommRing.{u2} (G i)], (forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (G i) -> (G j)) -> Type.{max u1 u2}
-Case conversion may be inaccurate. Consider using '#align ring.direct_limit Ring.DirectLimitₓ'. -/
/-- The direct limit of a directed system is the rings glued together along the maps. -/
def DirectLimit : Type max v w :=
FreeCommRing (Σi, G i) ⧸
@@ -486,12 +381,6 @@ instance : Ring (DirectLimit G f) :=
instance : Inhabited (DirectLimit G f) :=
⟨0⟩
-/- warning: ring.direct_limit.of -> Ring.DirectLimit.of is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (G i) -> (G j)) (i : ι), RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))
-but is expected to have type
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (G i) -> (G j)) (i : ι), RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))
-Case conversion may be inaccurate. Consider using '#align ring.direct_limit.of Ring.DirectLimit.ofₓ'. -/
/-- The canonical map from a component to the direct limit. -/
def of (i) : G i →+* DirectLimit G f :=
RingHom.mk'
@@ -504,17 +393,11 @@ def of (i) : G i →+* DirectLimit G f :=
variable {G f}
-/- warning: ring.direct_limit.of_f -> Ring.DirectLimit.of_f is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ring.direct_limit.of_f Ring.DirectLimit.of_fₓ'. -/
@[simp]
theorem of_f {i j} (hij) (x) : of G f j (f i j hij x) = of G f i x :=
Ideal.Quotient.eq.2 <| subset_span <| Or.inl ⟨i, j, hij, x, rfl⟩
#align ring.direct_limit.of_f Ring.DirectLimit.of_f
-/- warning: ring.direct_limit.exists_of -> Ring.DirectLimit.exists_of is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ring.direct_limit.exists_of Ring.DirectLimit.exists_ofₓ'. -/
/-- Every element of the direct limit corresponds to some element in
some component of the directed system. -/
theorem exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)] (z : DirectLimit G f) :
@@ -542,9 +425,6 @@ open Polynomial
variable {f' : ∀ i j, i ≤ j → G i →+* G j}
-/- warning: ring.direct_limit.polynomial.exists_of -> Ring.DirectLimit.Polynomial.exists_of is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ring.direct_limit.polynomial.exists_of Ring.DirectLimit.Polynomial.exists_ofₓ'. -/
theorem Polynomial.exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)]
(q : Polynomial (DirectLimit G fun i j h => f' i j h)) :
∃ i p, Polynomial.map (of G (fun i j h => f' i j h) i) p = q :=
@@ -565,9 +445,6 @@ theorem Polynomial.exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)]
end
-/- warning: ring.direct_limit.induction_on -> Ring.DirectLimit.induction_on is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ring.direct_limit.induction_on Ring.DirectLimit.induction_onₓ'. -/
@[elab_as_elim]
theorem induction_on [Nonempty ι] [IsDirected ι (· ≤ ·)] {C : DirectLimit G f → Prop}
(z : DirectLimit G f) (ih : ∀ i x, C (of G f i x)) : C z :=
@@ -585,9 +462,6 @@ variable [DirectedSystem G fun i j h => f' i j h]
variable (G f)
-/- warning: ring.direct_limit.of.zero_exact_aux2 -> Ring.DirectLimit.of.zero_exact_aux2 is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ring.direct_limit.of.zero_exact_aux2 Ring.DirectLimit.of.zero_exact_aux2ₓ'. -/
theorem of.zero_exact_aux2 {x : FreeCommRing (Σi, G i)} {s t} (hxs : IsSupported x s) {j k}
(hj : ∀ z : Σi, G i, z ∈ s → z.1 ≤ j) (hk : ∀ z : Σi, G i, z ∈ t → z.1 ≤ k) (hjk : j ≤ k)
(hst : s ⊆ t) :
@@ -618,9 +492,6 @@ theorem of.zero_exact_aux2 {x : FreeCommRing (Σi, G i)} {s t} (hxs : IsSupporte
variable {G f f'}
-/- warning: ring.direct_limit.of.zero_exact_aux -> Ring.DirectLimit.of.zero_exact_aux is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ring.direct_limit.of.zero_exact_aux Ring.DirectLimit.of.zero_exact_auxₓ'. -/
theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCommRing (Σi, G i)}
(H : Ideal.Quotient.mk _ x = (0 : DirectLimit G fun i j h => f' i j h)) :
∃ j s,
@@ -706,9 +577,6 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
(f' j k hjk).map_zero, MulZeroClass.mul_zero]
#align ring.direct_limit.of.zero_exact_aux Ring.DirectLimit.of.zero_exact_aux
-/- warning: ring.direct_limit.of.zero_exact -> Ring.DirectLimit.of.zero_exact is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ring.direct_limit.of.zero_exact Ring.DirectLimit.of.zero_exactₓ'. -/
/-- A component that corresponds to zero in the direct limit is already zero in some
bigger module in the directed system. -/
theorem of.zero_exact [IsDirected ι (· ≤ ·)] {i x} (hix : of G (fun i j h => f' i j h) i x = 0) :
@@ -723,9 +591,6 @@ end OfZeroExact
variable (f' : ∀ i j, i ≤ j → G i →+* G j)
-/- warning: ring.direct_limit.of_injective -> Ring.DirectLimit.of_injective is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ring.direct_limit.of_injective Ring.DirectLimit.of_injectiveₓ'. -/
/-- If the maps in the directed system are injective, then the canonical maps
from the components to the direct limits are injective. -/
theorem of_injective [IsDirected ι (· ≤ ·)] [DirectedSystem G fun i j h => f' i j h]
@@ -752,9 +617,6 @@ open FreeCommRing
variable (G f)
-/- warning: ring.direct_limit.lift -> Ring.DirectLimit.lift is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ring.direct_limit.lift Ring.DirectLimit.liftₓ'. -/
/-- The universal property of the direct limit: maps from the components to another ring
that respect the directed system structure (i.e. make some diagram commute) give rise
to a unique map out of the direct limit.
@@ -775,17 +637,11 @@ variable {G f}
omit Hg
-/- warning: ring.direct_limit.lift_of -> Ring.DirectLimit.lift_of is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ring.direct_limit.lift_of Ring.DirectLimit.lift_ofₓ'. -/
@[simp]
theorem lift_of (i x) : lift G f P g Hg (of G f i x) = g i x :=
FreeCommRing.lift_of _ _
#align ring.direct_limit.lift_of Ring.DirectLimit.lift_of
-/- warning: ring.direct_limit.lift_unique -> Ring.DirectLimit.lift_unique is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ring.direct_limit.lift_unique Ring.DirectLimit.lift_uniqueₓ'. -/
theorem lift_unique [Nonempty ι] [IsDirected ι (· ≤ ·)] (F : DirectLimit G f →+* P) (x) :
F x = lift G f P (fun i => F.comp <| of G f i) (fun i j hij x => by simp) x :=
DirectLimit.induction_on x fun i x => by simp
@@ -807,9 +663,6 @@ variable (f' : ∀ i j, i ≤ j → G i →+* G j)
namespace DirectLimit
-/- warning: field.direct_limit.nontrivial -> Field.DirectLimit.nontrivial is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align field.direct_limit.nontrivial Field.DirectLimit.nontrivialₓ'. -/
instance nontrivial [DirectedSystem G fun i j h => f' i j h] :
Nontrivial (Ring.DirectLimit G fun i j h => f' i j h) :=
⟨⟨0, 1,
@@ -822,12 +675,6 @@ instance nontrivial [DirectedSystem G fun i j h => f' i j h] :
exact one_ne_zero hf⟩⟩
#align field.direct_limit.nontrivial Field.DirectLimit.nontrivial
-/- warning: field.direct_limit.exists_inv -> Field.DirectLimit.exists_inv is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : Nonempty.{succ u1} ι] [_inst_4 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] [_inst_5 : forall (i : ι), Field.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (G i) -> (G j)) {p : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f}, (Ne.{succ (max u1 u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) p (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 0 (OfNat.mk.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 0 (Zero.zero.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (MulZeroClass.toHasZero.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)))))))))) -> (Exists.{succ (max u1 u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (fun (y : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) => Eq.{succ (max u1 u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (instHMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Distrib.toHasMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.toDistrib.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)))) p y) (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 1 (OfNat.mk.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 1 (One.one.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (AddMonoidWithOne.toOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.toAddCommGroupWithOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f))))))))))
-but is expected to have type
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : Nonempty.{succ u1} ι] [_inst_4 : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.12791 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.12793 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.12791 x._@.Mathlib.Algebra.DirectLimit._hyg.12793)] [_inst_5 : forall (i : ι), Field.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (G i) -> (G j)) {p : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f}, (Ne.{max (succ u1) (succ u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) p (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 0 (Zero.toOfNat0.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.zero.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)))) -> (Exists.{max (succ u1) (succ u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (fun (y : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) => Eq.{max (succ u1) (succ u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (instHMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonUnitalNonAssocRing.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f))))) p y) (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 1 (One.toOfNat1.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Semiring.toOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f))))))))
-Case conversion may be inaccurate. Consider using '#align field.direct_limit.exists_inv Field.DirectLimit.exists_invₓ'. -/
theorem exists_inv {p : Ring.DirectLimit G f} : p ≠ 0 → ∃ y, p * y = 1 :=
Ring.DirectLimit.induction_on p fun i x H =>
⟨Ring.DirectLimit.of G f i x⁻¹, by
@@ -840,40 +687,19 @@ section
open Classical
-/- warning: field.direct_limit.inv -> Field.DirectLimit.inv is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : Nonempty.{succ u1} ι] [_inst_4 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] [_inst_5 : forall (i : ι), Field.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (G i) -> (G j)), (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)
-but is expected to have type
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : Nonempty.{succ u1} ι] [_inst_4 : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.13011 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.13013 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.13011 x._@.Mathlib.Algebra.DirectLimit._hyg.13013)] [_inst_5 : forall (i : ι), Field.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (G i) -> (G j)), (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)
-Case conversion may be inaccurate. Consider using '#align field.direct_limit.inv Field.DirectLimit.invₓ'. -/
/-- Noncomputable multiplicative inverse in a direct limit of fields. -/
noncomputable def inv (p : Ring.DirectLimit G f) : Ring.DirectLimit G f :=
if H : p = 0 then 0 else Classical.choose (DirectLimit.exists_inv G f H)
#align field.direct_limit.inv Field.DirectLimit.inv
-/- warning: field.direct_limit.mul_inv_cancel -> Field.DirectLimit.mul_inv_cancel is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : Nonempty.{succ u1} ι] [_inst_4 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] [_inst_5 : forall (i : ι), Field.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (G i) -> (G j)) {p : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f}, (Ne.{succ (max u1 u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) p (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 0 (OfNat.mk.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 0 (Zero.zero.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (MulZeroClass.toHasZero.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)))))))))) -> (Eq.{succ (max u1 u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (instHMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Distrib.toHasMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.toDistrib.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)))) p (Field.DirectLimit.inv.{u1, u2} ι _inst_2 G _inst_3 _inst_4 (fun (i : ι) => _inst_5 i) f p)) (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 1 (OfNat.mk.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 1 (One.one.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (AddMonoidWithOne.toOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.toAddCommGroupWithOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)))))))))
-but is expected to have type
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : Nonempty.{succ u1} ι] [_inst_4 : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.13123 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.13125 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.13123 x._@.Mathlib.Algebra.DirectLimit._hyg.13125)] [_inst_5 : forall (i : ι), Field.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (G i) -> (G j)) {p : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f}, (Ne.{max (succ u1) (succ u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) p (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 0 (Zero.toOfNat0.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.zero.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)))) -> (Eq.{max (succ u1) (succ u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (instHMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonUnitalNonAssocRing.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f))))) p (Field.DirectLimit.inv.{u1, u2} ι _inst_2 G _inst_3 _inst_4 (fun (i : ι) => _inst_5 i) f p)) (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 1 (One.toOfNat1.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Semiring.toOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)))))))
-Case conversion may be inaccurate. Consider using '#align field.direct_limit.mul_inv_cancel Field.DirectLimit.mul_inv_cancelₓ'. -/
protected theorem mul_inv_cancel {p : Ring.DirectLimit G f} (hp : p ≠ 0) : p * inv G f p = 1 := by
rw [inv, dif_neg hp, Classical.choose_spec (direct_limit.exists_inv G f hp)]
#align field.direct_limit.mul_inv_cancel Field.DirectLimit.mul_inv_cancel
-/- warning: field.direct_limit.inv_mul_cancel -> Field.DirectLimit.inv_mul_cancel is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : Nonempty.{succ u1} ι] [_inst_4 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] [_inst_5 : forall (i : ι), Field.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (G i) -> (G j)) {p : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f}, (Ne.{succ (max u1 u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) p (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 0 (OfNat.mk.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 0 (Zero.zero.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (MulZeroClass.toHasZero.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)))))))))) -> (Eq.{succ (max u1 u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (instHMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Distrib.toHasMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.toDistrib.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)))) (Field.DirectLimit.inv.{u1, u2} ι _inst_2 G _inst_3 _inst_4 (fun (i : ι) => _inst_5 i) f p) p) (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 1 (OfNat.mk.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 1 (One.one.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (AddMonoidWithOne.toOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.toAddCommGroupWithOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)))))))))
-but is expected to have type
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : Nonempty.{succ u1} ι] [_inst_4 : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.13256 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.13258 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.13256 x._@.Mathlib.Algebra.DirectLimit._hyg.13258)] [_inst_5 : forall (i : ι), Field.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (G i) -> (G j)) {p : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f}, (Ne.{max (succ u1) (succ u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) p (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 0 (Zero.toOfNat0.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.zero.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)))) -> (Eq.{max (succ u1) (succ u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (instHMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonUnitalNonAssocRing.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f))))) (Field.DirectLimit.inv.{u1, u2} ι _inst_2 G _inst_3 _inst_4 (fun (i : ι) => _inst_5 i) f p) p) (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 1 (One.toOfNat1.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Semiring.toOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)))))))
-Case conversion may be inaccurate. Consider using '#align field.direct_limit.inv_mul_cancel Field.DirectLimit.inv_mul_cancelₓ'. -/
protected theorem inv_mul_cancel {p : Ring.DirectLimit G f} (hp : p ≠ 0) : inv G f p * p = 1 := by
rw [_root_.mul_comm, direct_limit.mul_inv_cancel G f hp]
#align field.direct_limit.inv_mul_cancel Field.DirectLimit.inv_mul_cancel
-/- warning: field.direct_limit.field -> Field.DirectLimit.field is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align field.direct_limit.field Field.DirectLimit.fieldₓ'. -/
/-- Noncomputable field structure on the direct limit of fields.
See note [reducible non-instances]. -/
@[reducible]
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -290,13 +290,8 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : DirectS
· intro i0 hi0
rw [Dfinsupp.mem_support_iff, DirectSum.sub_apply, ← DirectSum.single_eq_lof, ←
DirectSum.single_eq_lof, Dfinsupp.single_apply, Dfinsupp.single_apply] at hi0
- split_ifs at hi0 with hi hj hj
- · rwa [hi] at hik
- · rwa [hi] at hik
- · rwa [hj] at hjk
- exfalso
- apply hi0
- rw [sub_zero]
+ split_ifs at hi0 with hi hj hj; · rwa [hi] at hik; · rwa [hi] at hik; · rwa [hj] at hjk
+ exfalso; apply hi0; rw [sub_zero]
simp [LinearMap.map_sub, totalize_of_le, hik, hjk, DirectedSystem.map_map,
DirectSum.apply_eq_component, DirectSum.component.of]⟩)
⟨ind, fun _ h => (Finset.not_mem_empty _ h).elim, LinearMap.map_zero _⟩
@@ -615,8 +610,7 @@ theorem of.zero_exact_aux2 {x : FreeCommRing (Σi, G i)} {s t} (hxs : IsSupporte
dsimp only
have := DirectedSystem.map_map fun i j h => f' i j h
dsimp only at this
- rw [this]
- rfl
+ rw [this]; rfl
· rintro x y ihx ihy
rw [(restriction _).map_add, (FreeCommRing.lift _).map_add, (f' j k hjk).map_add, ihx, ihy,
(restriction _).map_add, (FreeCommRing.lift _).map_add]
@@ -639,24 +633,19 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
· refine'
⟨j, {⟨i, x⟩, ⟨j, f' i j hij x⟩}, _,
is_supported_sub (is_supported_of.2 <| Or.inr rfl) (is_supported_of.2 <| Or.inl rfl), _⟩
- · rintro k (rfl | ⟨rfl | _⟩)
- exact hij
- rfl
+ · rintro k (rfl | ⟨rfl | _⟩); exact hij; rfl
· rw [(restriction _).map_sub, (FreeCommRing.lift _).map_sub, restriction_of, dif_pos,
restriction_of, dif_pos, lift_of, lift_of]
dsimp only
have := DirectedSystem.map_map fun i j h => f' i j h
dsimp only at this
- rw [this]
- exact sub_self _
+ rw [this]; exact sub_self _
exacts[Or.inr rfl, Or.inl rfl]
· refine' ⟨i, {⟨i, 1⟩}, _, is_supported_sub (is_supported_of.2 rfl) is_supported_one, _⟩
- · rintro k (rfl | h)
- rfl
+ · rintro k (rfl | h); rfl
· rw [(restriction _).map_sub, (FreeCommRing.lift _).map_sub, restriction_of, dif_pos,
(restriction _).map_one, lift_of, (FreeCommRing.lift _).map_one]
- dsimp only
- rw [(f' i i _).map_one, sub_self]
+ dsimp only; rw [(f' i i _).map_one, sub_self]
· exact Set.mem_singleton _
· refine'
⟨i, {⟨i, x + y⟩, ⟨i, x⟩, ⟨i, y⟩}, _,
@@ -668,9 +657,7 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
· rw [(restriction _).map_sub, (restriction _).map_add, restriction_of, restriction_of,
restriction_of, dif_pos, dif_pos, dif_pos, (FreeCommRing.lift _).map_sub,
(FreeCommRing.lift _).map_add, lift_of, lift_of, lift_of]
- dsimp only
- rw [(f' i i _).map_add]
- exact sub_self _
+ dsimp only; rw [(f' i i _).map_add]; exact sub_self _
exacts[Or.inl rfl, Or.inr (Or.inr rfl), Or.inr (Or.inl rfl)]
· refine'
⟨i, {⟨i, x * y⟩, ⟨i, x⟩, ⟨i, y⟩}, _,
@@ -682,19 +669,15 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
· rw [(restriction _).map_sub, (restriction _).map_mul, restriction_of, restriction_of,
restriction_of, dif_pos, dif_pos, dif_pos, (FreeCommRing.lift _).map_sub,
(FreeCommRing.lift _).map_mul, lift_of, lift_of, lift_of]
- dsimp only
- rw [(f' i i _).map_mul]
+ dsimp only; rw [(f' i i _).map_mul]
exacts[sub_self _, Or.inl rfl, Or.inr (Or.inr rfl), Or.inr (Or.inl rfl)]
· refine' Nonempty.elim (by infer_instance) fun ind : ι => _
refine' ⟨ind, ∅, fun _ => False.elim, is_supported_zero, _⟩
rw [(restriction _).map_zero, (FreeCommRing.lift _).map_zero]
· rintro x y ⟨i, s, hi, hxs, ihs⟩ ⟨j, t, hj, hyt, iht⟩
obtain ⟨k, hik, hjk⟩ := exists_ge_ge i j
- have : ∀ z : Σi, G i, z ∈ s ∪ t → z.1 ≤ k :=
- by
- rintro z (hz | hz)
- exact le_trans (hi z hz) hik
- exact le_trans (hj z hz) hjk
+ have : ∀ z : Σi, G i, z ∈ s ∪ t → z.1 ≤ k := by rintro z (hz | hz);
+ exact le_trans (hi z hz) hik; exact le_trans (hj z hz) hjk
refine'
⟨k, s ∪ t, this,
is_supported_add (is_supported_upwards hxs <| Set.subset_union_left s t)
@@ -705,8 +688,7 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
of.zero_exact_aux2 G f' hxs hi this hik (Set.subset_union_left s t), ←
of.zero_exact_aux2 G f' hyt hj this hjk (Set.subset_union_right s t), ihs,
(f' i k hik).map_zero, iht, (f' j k hjk).map_zero, zero_add]
- · rintro x y ⟨j, t, hj, hyt, iht⟩
- rw [smul_eq_mul]
+ · rintro x y ⟨j, t, hj, hyt, iht⟩; rw [smul_eq_mul]
rcases exists_finset_support x with ⟨s, hxs⟩
rcases(s.image Sigma.fst).exists_le with ⟨i, hi⟩
obtain ⟨k, hik, hjk⟩ := exists_ge_ge i j
@@ -752,14 +734,10 @@ theorem of_injective [IsDirected ι (· ≤ ·)] [DirectedSystem G fun i j h =>
by
suffices ∀ x, of G (fun i j h => f' i j h) i x = 0 → x = 0
by
- intro x y hxy
- rw [← sub_eq_zero]
- apply this
+ intro x y hxy; rw [← sub_eq_zero]; apply this
rw [(of G _ i).map_sub, hxy, sub_self]
- intro x hx
- rcases of.zero_exact hx with ⟨j, hij, hfx⟩
- apply hf i j hij
- rw [hfx, (f' i j hij).map_zero]
+ intro x hx; rcases of.zero_exact hx with ⟨j, hij, hfx⟩
+ apply hf i j hij; rw [hfx, (f' i j hij).map_zero]
#align ring.direct_limit.of_injective Ring.DirectLimit.of_injective
variable (P : Type u₁) [CommRing P]
@@ -785,11 +763,8 @@ def lift : DirectLimit G f →+* P :=
Ideal.Quotient.lift _ (FreeCommRing.lift fun x : Σi, G i => g x.1 x.2)
(by
suffices Ideal.span _ ≤ Ideal.comap (FreeCommRing.lift fun x : Σi : ι, G i => g x.fst x.snd) ⊥
- by
- intro x hx
- exact (mem_bot P).1 (this hx)
- rw [Ideal.span_le]
- intro x hx
+ by intro x hx; exact (mem_bot P).1 (this hx)
+ rw [Ideal.span_le]; intro x hx
rw [SetLike.mem_coe, Ideal.mem_comap, mem_bot]
rcases hx with (⟨i, j, hij, x, rfl⟩ | ⟨i, rfl⟩ | ⟨i, x, y, rfl⟩ | ⟨i, x, y, rfl⟩) <;>
simp only [RingHom.map_sub, lift_of, Hg, RingHom.map_one, RingHom.map_add, RingHom.map_mul,
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -71,10 +71,7 @@ variable [∀ i, AddCommGroup (G i)] [∀ i, Module R (G i)]
variable {G} (f : ∀ i j, i ≤ j → G i →ₗ[R] G j)
/- warning: module.directed_system.map_self -> Module.DirectedSystem.map_self is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] (f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))) [_inst_5 : DirectedSystem.{u2, u3} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j h))] (i : ι) (x : G i) (h : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i i), Eq.{succ u3} (G i) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G i) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (_inst_4 i) (_inst_4 i)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G i) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (_inst_4 i) (_inst_4 i)) => (G i) -> (G i)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G i) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (_inst_4 i) (_inst_4 i) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i i h) x) x
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] (f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))) [_inst_5 : DirectedSystem.{u2, u3} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) => FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j h))] (i : ι) (x : G i) (h : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G i) x) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G i) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (_inst_4 i) (_inst_4 i)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G i) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G i) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (_inst_4 i) (_inst_4 i) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i i h) x) x
+<too large>
Case conversion may be inaccurate. Consider using '#align module.directed_system.map_self Module.DirectedSystem.map_selfₓ'. -/
/-- A copy of `directed_system.map_self` specialized to linear maps, as otherwise the
`λ i j h, f i j h` can confuse the simplifier. -/
@@ -83,10 +80,7 @@ theorem DirectedSystem.map_self [DirectedSystem G fun i j h => f i j h] (i x h)
#align module.directed_system.map_self Module.DirectedSystem.map_self
/- warning: module.directed_system.map_map -> Module.DirectedSystem.map_map is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] (f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))) [_inst_5 : DirectedSystem.{u2, u3} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j h))] {i : ι} {j : ι} {k : ι} (hij : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (hjk : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) j k) (x : G i), Eq.{succ u3} (G k) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (G k) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) (_inst_4 j) (_inst_4 k)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (G k) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) (_inst_4 j) (_inst_4 k)) => (G j) -> (G k)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G j) (G k) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) (_inst_4 j) (_inst_4 k) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f j k hjk) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G k) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) (_inst_4 i) (_inst_4 k)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G k) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) (_inst_4 i) (_inst_4 k)) => (G i) -> (G k)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G k) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) (_inst_4 i) (_inst_4 k) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i k (le_trans.{u2} ι _inst_2 i j k hij hjk)) x)
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] (f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))) [_inst_5 : DirectedSystem.{u2, u3} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) => FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j h))] {i : ι} {j : ι} {k : ι} (hij : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) (hjk : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) j k) (x : G i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => G k) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (G k) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) (_inst_4 j) (_inst_4 k)) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => G k) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G j) (G k) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) (_inst_4 j) (_inst_4 k) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f j k hjk) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G k) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) (_inst_4 i) (_inst_4 k)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G k) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G k) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) (_inst_4 i) (_inst_4 k) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i k (le_trans.{u2} ι _inst_2 i j k hij hjk)) x)
+<too large>
Case conversion may be inaccurate. Consider using '#align module.directed_system.map_map Module.DirectedSystem.map_mapₓ'. -/
/-- A copy of `directed_system.map_map` specialized to linear maps, as otherwise the
`λ i j h, f i j h` can confuse the simplifier. -/
@@ -128,10 +122,7 @@ instance : Inhabited (DirectLimit G f) :=
variable (R ι)
/- warning: module.direct_limit.of -> Module.DirectLimit.of is a dubious translation:
-lean 3 declaration is
- forall (R : Type.{u1}) [_inst_1 : Ring.{u1} R] (ι : Type.{u2}) [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] (G : ι -> Type.{u3}) [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] (f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))) (i : ι), LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => _inst_3 i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => _inst_4 i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => _inst_4 i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => _inst_4 i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => _inst_3 i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => _inst_4 i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => _inst_4 i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => _inst_3 i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (_inst_4 i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => _inst_4 i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => _inst_4 i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => _inst_3 i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))
-but is expected to have type
- forall (R : Type.{u1}) [_inst_1 : Ring.{u1} R] (ι : Type.{u2}) [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] (G : ι -> Type.{u3}) [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] (f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))) (i : ι), LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)
+<too large>
Case conversion may be inaccurate. Consider using '#align module.direct_limit.of Module.DirectLimit.ofₓ'. -/
/-- The canonical map from a component to the direct limit. -/
def of (i) : G i →ₗ[R] DirectLimit G f :=
@@ -141,10 +132,7 @@ def of (i) : G i →ₗ[R] DirectLimit G f :=
variable {R ι G f}
/- warning: module.direct_limit.of_f -> Module.DirectLimit.of_f is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} {i : ι} {j : ι} {hij : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j} {x : G i}, Eq.{succ (max u2 u3)} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) j) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) j) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) => (G j) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) j) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) => (G i) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x)
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} {i : ι} {j : ι} {hij : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j} {x : G i}, Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x)
+<too large>
Case conversion may be inaccurate. Consider using '#align module.direct_limit.of_f Module.DirectLimit.of_fₓ'. -/
@[simp]
theorem of_f {i j hij x} : of R ι G f j (f i j hij x) = of R ι G f i x :=
@@ -152,10 +140,7 @@ theorem of_f {i j hij x} : of R ι G f j (f i j hij x) = of R ι G f i x :=
#align module.direct_limit.of_f Module.DirectLimit.of_f
/- warning: module.direct_limit.exists_of -> Module.DirectLimit.exists_of is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} [_inst_5 : Nonempty.{succ u2} ι] [_inst_6 : IsDirected.{u2} ι (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2))] (z : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f), Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) => (G i) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x) z))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} [_inst_5 : Nonempty.{succ u2} ι] [_inst_6 : IsDirected.{u2} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.1371 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.1373 : ι) => LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.1371 x._@.Mathlib.Algebra.DirectLimit._hyg.1373)] (z : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f), Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) x) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x) z))
+<too large>
Case conversion may be inaccurate. Consider using '#align module.direct_limit.exists_of Module.DirectLimit.exists_ofₓ'. -/
/-- Every element of the direct limit corresponds to some element in
some component of the directed system. -/
@@ -170,10 +155,7 @@ theorem exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)] (z : DirectLimit G f
#align module.direct_limit.exists_of Module.DirectLimit.exists_of
/- warning: module.direct_limit.induction_on -> Module.DirectLimit.induction_on is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} [_inst_5 : Nonempty.{succ u2} ι] [_inst_6 : IsDirected.{u2} ι (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2))] {C : (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) -> Prop} (z : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f), (forall (i : ι) (x : G i), C (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) => (G i) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x)) -> (C z)
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} [_inst_5 : Nonempty.{succ u2} ι] [_inst_6 : IsDirected.{u2} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.1651 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.1653 : ι) => LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.1651 x._@.Mathlib.Algebra.DirectLimit._hyg.1653)] {C : (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) -> Prop} (z : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f), (forall (i : ι) (x : G i), C (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x)) -> (C z)
+<too large>
Case conversion may be inaccurate. Consider using '#align module.direct_limit.induction_on Module.DirectLimit.induction_onₓ'. -/
@[elab_as_elim]
protected theorem induction_on [Nonempty ι] [IsDirected ι (· ≤ ·)] {C : DirectLimit G f → Prop}
@@ -191,10 +173,7 @@ include Hg
variable (R ι G f)
/- warning: module.direct_limit.lift -> Module.DirectLimit.lift is a dubious translation:
-lean 3 declaration is
- forall (R : Type.{u1}) [_inst_1 : Ring.{u1} R] (ι : Type.{u2}) [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] (G : ι -> Type.{u3}) [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] (f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))) {P : Type.{u4}} [_inst_5 : AddCommGroup.{u4} P] [_inst_6 : Module.{u1, u4} R P (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5)] (g : forall (i : ι), LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6), (forall (i : ι) (j : ι) (hij : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (x : G i), Eq.{succ u4} P (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6) => (G j) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G j) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (g j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (g i) x)) -> (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => _inst_3 i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => _inst_4 i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => _inst_4 i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => _inst_4 i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => _inst_3 i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => _inst_4 i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => _inst_4 i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => _inst_3 i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => _inst_4 i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => _inst_4 i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => _inst_3 i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) _inst_6)
-but is expected to have type
- forall (R : Type.{u1}) [_inst_1 : Ring.{u1} R] (ι : Type.{u2}) [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] (G : ι -> Type.{u3}) [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] (f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))) {P : Type.{u4}} [_inst_5 : AddCommGroup.{u4} P] [_inst_6 : Module.{u1, u4} R P (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5)] (g : forall (i : ι), LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6), (forall (i : ι) (j : ι) (hij : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) (x : G i), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G j) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (g j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (g i) x)) -> (LinearMap.{u1, u1, max u3 u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6)
+<too large>
Case conversion may be inaccurate. Consider using '#align module.direct_limit.lift Module.DirectLimit.liftₓ'. -/
/-- The universal property of the direct limit: maps from the components to another module
that respect the directed system structure (i.e. make some diagram commute) give rise
@@ -211,20 +190,14 @@ variable {R ι G f}
omit Hg
/- warning: module.direct_limit.lift_of -> Module.DirectLimit.lift_of is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} {P : Type.{u4}} [_inst_5 : AddCommGroup.{u4} P] [_inst_6 : Module.{u1, u4} R P (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5)] (g : forall (i : ι), LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (Hg : forall (i : ι) (j : ι) (hij : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (x : G i), Eq.{succ u4} P (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6) => (G j) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G j) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (g j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (g i) x)) {i : ι} (x : G i), Eq.{succ u4} P (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) _inst_6) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) _inst_6) => (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) -> P) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.lift.{u1, u2, u3, u4} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f P _inst_5 _inst_6 g Hg) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) => (G i) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (g i) x)
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} {P : Type.{u4}} [_inst_5 : AddCommGroup.{u4} P] [_inst_6 : Module.{u1, u4} R P (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5)] (g : forall (i : ι), LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (Hg : forall (i : ι) (j : ι) (hij : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) (x : G i), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G j) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (g j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (g i) x)) {i : ι} (x : G i), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x)) (FunLike.coe.{max (max (succ u4) (succ u2)) (succ u3), max (succ u2) (succ u3), succ u4} (LinearMap.{u1, u1, max u3 u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (fun (_x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.lift.{u1, u2, u3, u4} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f P _inst_5 _inst_6 g Hg) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (g i) x)
+<too large>
Case conversion may be inaccurate. Consider using '#align module.direct_limit.lift_of Module.DirectLimit.lift_ofₓ'. -/
theorem lift_of {i} (x) : lift R ι G f g Hg (of R ι G f i x) = g i x :=
DirectSum.toModule_lof R _ _
#align module.direct_limit.lift_of Module.DirectLimit.lift_of
/- warning: module.direct_limit.lift_unique -> Module.DirectLimit.lift_unique is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} {P : Type.{u4}} [_inst_5 : AddCommGroup.{u4} P] [_inst_6 : Module.{u1, u4} R P (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5)] [_inst_7 : Nonempty.{succ u2} ι] [_inst_8 : IsDirected.{u2} ι (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2))] (F : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f), Eq.{succ u4} P (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) => (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) -> P) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F x) (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) _inst_6) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) _inst_6) => (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) -> P) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.lift.{u1, u2, u3, u4} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f P _inst_5 _inst_6 (fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) (fun (i : ι) (j : ι) (hij : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (x : G i) => Eq.mpr.{0} (Eq.{succ u4} P (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6) => (G j) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G j) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (Eq.{succ u4} P (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) => (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) -> P) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) => (G j) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u4} P (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6) => (G j) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G j) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (Eq.{succ u4} P (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) => (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) -> P) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) => (G j) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x))) (Eq.ndrec.{0, succ u4} P (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6) => (G j) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G j) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j)) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (fun (_a : P) => Eq.{1} Prop (Eq.{succ u4} P (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6) => (G j) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G j) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (Eq.{succ u4} P _a (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x))) (rfl.{1} Prop (Eq.{succ u4} P (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6) => (G j) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G j) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x))) (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) => (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) -> P) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) => (G j) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x))) (LinearMap.comp_apply.{u1, u1, u1, u3, max u2 u3, u4} R R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)))) (Eq.mpr.{0} (Eq.{succ u4} P (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) => (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) -> P) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) => (G j) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (Eq.{succ u4} P (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) => (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) -> P) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) => (G i) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u4} P (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) => (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) -> P) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) => (G j) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (Eq.{succ u4} P (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) => (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) -> P) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) => (G i) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x))) (Eq.ndrec.{0, succ (max u2 u3)} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) j) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) j) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) => (G j) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) j) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (fun (_a : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) => Eq.{1} Prop (Eq.{succ u4} P (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) => (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) -> P) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) => (G j) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (Eq.{succ u4} P (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) => (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) -> P) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F _a) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x))) (rfl.{1} Prop (Eq.{succ u4} P (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) => (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) -> P) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) => (G j) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) => (G i) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x) (Module.DirectLimit.of_f.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i j hij x))) (rfl.{succ u4} P (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) => (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) -> P) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) => (G i) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x)))))) x)
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} {P : Type.{u4}} [_inst_5 : AddCommGroup.{u4} P] [_inst_6 : Module.{u1, u4} R P (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5)] [_inst_7 : Nonempty.{succ u2} ι] [_inst_8 : IsDirected.{u2} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.2543 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.2545 : ι) => LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.2543 x._@.Mathlib.Algebra.DirectLimit._hyg.2545)] (F : LinearMap.{u1, u1, max u3 u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) x) (FunLike.coe.{max (max (succ u4) (succ u2)) (succ u3), max (succ u2) (succ u3), succ u4} (LinearMap.{u1, u1, max u3 u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (fun (_x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F x) (FunLike.coe.{max (max (succ u4) (succ u2)) (succ u3), max (succ u2) (succ u3), succ u4} (LinearMap.{u1, u1, max u3 u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (fun (_x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.lift.{u1, u2, u3, u4} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f P _inst_5 _inst_6 (fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) (fun (i : ι) (j : ι) (hij : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) (x : G i) => Eq.mpr.{0} (Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G j) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ (max u2 u3)) (succ u4), succ (max u2 u3), succ u4} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (fun (_x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (FunLike.coe.{max (succ u3) (succ (max u2 u3)), succ u3, succ (max u2 u3)} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x))) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (id.{0} (Eq.{1} Prop (Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G j) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ (max u2 u3)) (succ u4), succ (max u2 u3), succ u4} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (fun (_x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (FunLike.coe.{max (succ u3) (succ (max u2 u3)), succ u3, succ (max u2 u3)} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x))) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x))) (Eq.ndrec.{0, succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G j) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j)) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (fun (_a : (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) => Eq.{1} Prop (Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G j) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) _a (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x))) (Eq.refl.{1} Prop (Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G j) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x))) (FunLike.coe.{max (succ (max u2 u3)) (succ u4), succ (max u2 u3), succ u4} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (fun (_x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (FunLike.coe.{max (succ u3) (succ (max u2 u3)), succ u3, succ (max u2 u3)} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x))) (LinearMap.comp_apply.{max u2 u3, u1, u1, u1, u3, u4} R R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)))) (Eq.mpr.{0} (Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ (max u2 u3)) (succ u4), succ (max u2 u3), succ u4} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (fun (_x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (FunLike.coe.{max (succ u3) (succ (max u2 u3)), succ u3, succ (max u2 u3)} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x))) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ (max u2 u3)) (succ u4), succ (max u2 u3), succ u4} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (fun (_x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (id.{0} (Eq.{1} Prop (Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ (max u2 u3)) (succ u4), succ (max u2 u3), succ u4} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (fun (_x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (FunLike.coe.{max (succ u3) (succ (max u2 u3)), succ u3, succ (max u2 u3)} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x))) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ (max u2 u3)) (succ u4), succ (max u2 u3), succ u4} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (fun (_x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x))) (Eq.ndrec.{0, succ (max u2 u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (fun (_a : (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) => Eq.{1} Prop (Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ (max u2 u3)) (succ u4), succ (max u2 u3), succ u4} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (fun (_x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (FunLike.coe.{max (succ u3) (succ (max u2 u3)), succ u3, succ (max u2 u3)} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x))) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ (max u2 u3)) (succ u4), succ (max u2 u3), succ u4} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (fun (_x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F _a) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x))) (Eq.refl.{1} Prop (Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ (max u2 u3)) (succ u4), succ (max u2 u3), succ u4} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (fun (_x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (FunLike.coe.{max (succ u3) (succ (max u2 u3)), succ u3, succ (max u2 u3)} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x))) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x))) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x) (Module.DirectLimit.of_f.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i j hij x))) (Eq.refl.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ (max u2 u3)) (succ u4), succ (max u2 u3), succ u4} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (fun (_x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x)))))) x)
+<too large>
Case conversion may be inaccurate. Consider using '#align module.direct_limit.lift_unique Module.DirectLimit.lift_uniqueₓ'. -/
theorem lift_unique [Nonempty ι] [IsDirected ι (· ≤ ·)] (F : DirectLimit G f →ₗ[R] P) (x) :
F x =
@@ -283,10 +256,7 @@ variable [DirectedSystem G fun i j h => f i j h]
open Classical
/- warning: module.direct_limit.to_module_totalize_of_le -> Module.DirectLimit.toModule_totalize_of_le is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} [_inst_7 : DirectedSystem.{u2, u3} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j h))] {x : DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))} {i : ι} {j : ι} (hij : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j), (forall (k : ι), (Membership.Mem.{u2, u2} ι (Finset.{u2} ι) (Finset.hasMem.{u2} ι) k (Dfinsupp.support.{u2, u3} ι (fun (i : ι) => G i) (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (G i) (AddMonoid.toAddZeroClass.{u3} (G i) (AddCommMonoid.toAddMonoid.{u3} (G i) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)))) (fun (i : ι) (x : G i) => Ne.decidable.{succ u3} (G i) (fun (a : G i) (b : G i) => Classical.propDecidable (Eq.{succ u3} (G i) a b)) x (OfNat.ofNat.{u3} (G i) 0 (OfNat.mk.{u3} (G i) 0 (Zero.zero.{u3} (G i) (AddZeroClass.toHasZero.{u3} (G i) (AddMonoid.toAddZeroClass.{u3} (G i) (AddCommMonoid.toAddMonoid.{u3} (G i) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)))))))) x)) -> (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) k i)) -> (Eq.{succ u3} (G j) (coeFn.{max (succ (max u2 u3)) (succ u3), max (succ (max u2 u3)) (succ u3)} (LinearMap.{u1, u1, max u2 u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i)) (G j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i) (fun (i : ι) => (fun {j : ι} => _inst_4 j) i)) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, max u2 u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i)) (G j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i) (fun (i : ι) => (fun {j : ι} => _inst_4 j) i)) (_inst_4 j)) => (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i)) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u3} R R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i)) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i) (fun (i : ι) => (fun {j : ι} => _inst_4 j) i)) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.toModule.{u1, u2, u3, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) (fun {j : ι} => _inst_4 j) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 j) (fun (k : ι) => Module.DirectLimit.totalize.{u1, u2, u3} R _inst_1 ι _inst_2 G (fun {j : ι} => _inst_3 j) (fun {j : ι} => _inst_4 j) f k j)) x) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) (coeFn.{max (succ (max u2 u3)) (succ u3), max (succ (max u2 u3)) (succ u3)} (LinearMap.{u1, u1, max u2 u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i)) (G i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i)) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i) (fun (i : ι) => (fun {i : ι} => _inst_4 i) i)) (_inst_4 i)) (fun (_x : LinearMap.{u1, u1, max u2 u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i)) (G i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i)) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i) (fun (i : ι) => (fun {i : ι} => _inst_4 i) i)) (_inst_4 i)) => (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i)) -> (G i)) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u3} R R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i)) (G i) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i)) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i) (fun (i : ι) => (fun {i : ι} => _inst_4 i) i)) (_inst_4 i) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.toModule.{u1, u2, u3, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) (fun {i : ι} => _inst_4 i) (G i) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (_inst_4 i) (fun (k : ι) => Module.DirectLimit.totalize.{u1, u2, u3} R _inst_1 ι _inst_2 G (fun {i : ι} => _inst_3 i) (fun {i : ι} => _inst_4 i) f k i)) x)))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} [_inst_7 : DirectedSystem.{u2, u3} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) => FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j h))] {x : DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))} {i : ι} {j : ι} (hij : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j), (forall (k : ι), (Membership.mem.{u2, u2} ι (Finset.{u2} ι) (Finset.instMembershipFinset.{u2} ι) k (Dfinsupp.support.{u2, u3} ι (fun (i : ι) => G i) (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => G i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => G i) i) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i))) (fun (i : ι) (x : G i) => instDecidableNot (Eq.{succ u3} (G i) x (OfNat.ofNat.{u3} (G i) 0 (Zero.toOfNat0.{u3} (G i) (AddMonoid.toZero.{u3} ((fun (i : ι) => G i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => G i) i) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)))))) (Classical.propDecidable (Eq.{succ u3} (G i) x (OfNat.ofNat.{u3} (G i) 0 (Zero.toOfNat0.{u3} (G i) (AddMonoid.toZero.{u3} ((fun (i : ι) => G i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => G i) i) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)))))))) x)) -> (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) k i)) -> (Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) => G j) x) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u3} (LinearMap.{u1, u1, max u3 u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (G j) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i)) (_inst_4 j)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u3} R R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i)) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.toModule.{u1, u2, u3, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (k : ι) => G k) (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) (fun (j : ι) => _inst_4 j) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 j) (fun (k : ι) => Module.DirectLimit.totalize.{u1, u2, u3} R _inst_1 ι _inst_2 G (fun (j : ι) => _inst_3 j) (fun (j : ι) => _inst_4 j) f k j)) x) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u3} (LinearMap.{u1, u1, max u3 u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (G i) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i)) (_inst_4 i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) => G i) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u3} R R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (G i) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i)) (_inst_4 i) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.toModule.{u1, u2, u3, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (k : ι) => G k) (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) (fun (i : ι) => _inst_4 i) (G i) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (_inst_4 i) (fun (k : ι) => Module.DirectLimit.totalize.{u1, u2, u3} R _inst_1 ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f k i)) x)))
+<too large>
Case conversion may be inaccurate. Consider using '#align module.direct_limit.to_module_totalize_of_le Module.DirectLimit.toModule_totalize_of_leₓ'. -/
theorem toModule_totalize_of_le {x : DirectSum ι G} {i j : ι} (hij : i ≤ j)
(hx : ∀ k ∈ x.support, k ≤ i) :
@@ -302,10 +272,7 @@ theorem toModule_totalize_of_le {x : DirectSum ι G} {i j : ι} (hij : i ≤ j)
#align module.direct_limit.to_module_totalize_of_le Module.DirectLimit.toModule_totalize_of_le
/- warning: module.direct_limit.of.zero_exact_aux -> Module.DirectLimit.of.zero_exact_aux is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} [_inst_7 : DirectedSystem.{u2, u3} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j h))] [_inst_8 : Nonempty.{succ u2} ι] [_inst_9 : IsDirected.{u2} ι (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2))] {x : DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))}, (Eq.{succ (max u2 u3)} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => _inst_3 i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => _inst_4 i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => _inst_4 i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => _inst_4 i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => _inst_4 i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => _inst_4 i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.mk.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => _inst_4 i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => _inst_4 i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => _inst_4 i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => _inst_4 i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))) x) (OfNat.ofNat.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) 0 (OfNat.mk.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) 0 (Zero.zero.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddZeroClass.toHasZero.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddMonoid.toAddZeroClass.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (SubNegMonoid.toAddMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddGroup.toSubNegMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddGroup.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)))))))))) -> (Exists.{succ u2} ι (fun (j : ι) => And (forall (k : ι), (Membership.Mem.{u2, u2} ι (Finset.{u2} ι) (Finset.hasMem.{u2} ι) k (Dfinsupp.support.{u2, u3} ι (fun (i : ι) => G i) (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (G i) (AddMonoid.toAddZeroClass.{u3} (G i) (AddCommMonoid.toAddMonoid.{u3} (G i) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)))) (fun (i : ι) (x : G i) => Ne.decidable.{succ u3} (G i) (fun (a : G i) (b : G i) => Classical.propDecidable (Eq.{succ u3} (G i) a b)) x (OfNat.ofNat.{u3} (G i) 0 (OfNat.mk.{u3} (G i) 0 (Zero.zero.{u3} (G i) (AddZeroClass.toHasZero.{u3} (G i) (AddMonoid.toAddZeroClass.{u3} (G i) (AddCommMonoid.toAddMonoid.{u3} (G i) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)))))))) x)) -> (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) k j)) (Eq.{succ u3} (G j) (coeFn.{max (succ (max u2 u3)) (succ u3), max (succ (max u2 u3)) (succ u3)} (LinearMap.{u1, u1, max u2 u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (G j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (j : ι) => _inst_4 j) i)) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, max u2 u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (G j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (j : ι) => _inst_4 j) i)) (_inst_4 j)) => (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u3} R R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (j : ι) => _inst_4 j) i)) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.toModule.{u1, u2, u3, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (j : ι) => _inst_4 j) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 j) (fun (i : ι) => Module.DirectLimit.totalize.{u1, u2, u3} R _inst_1 ι _inst_2 G (fun (j : ι) => _inst_3 j) (fun (j : ι) => _inst_4 j) f i j)) x) (OfNat.ofNat.{u3} (G j) 0 (OfNat.mk.{u3} (G j) 0 (Zero.zero.{u3} (G j) (AddZeroClass.toHasZero.{u3} (G j) (AddMonoid.toAddZeroClass.{u3} (G j) (SubNegMonoid.toAddMonoid.{u3} (G j) (AddGroup.toSubNegMonoid.{u3} (G j) (AddCommGroup.toAddGroup.{u3} (G j) (_inst_3 j))))))))))))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} [_inst_7 : DirectedSystem.{u2, u3} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) => FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j h))] [_inst_8 : Nonempty.{succ u2} ι] [_inst_9 : IsDirected.{u2} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.3797 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.3799 : ι) => LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.3797 x._@.Mathlib.Algebra.DirectLimit._hyg.3799)] {x : DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))}, (Eq.{max (succ u2) (succ u3)} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.instAddCommGroupDirectSumToAddCommMonoid.{u2, u3} ι G (fun (i : ι) => _inst_3 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.instAddCommGroupDirectSumToAddCommMonoid.{u2, u3} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) x) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) x) (instHSub.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) x) (SubNegMonoid.toSub.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) x) (AddGroup.toSubNegMonoid.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) x) (AddCommGroup.toAddGroup.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) x) (DirectSum.instAddCommGroupDirectSumToAddCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) ((fun (i : ι) => _inst_4 i) i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) ((fun (i : ι) => _inst_4 i) i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) ((fun (i : ι) => _inst_4 i) j) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) ((fun (i : ι) => _inst_4 i) j) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.mk.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.instAddCommGroupDirectSumToAddCommMonoid.{u2, u3} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) x) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) x) (instHSub.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) x) (SubNegMonoid.toSub.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) x) (AddGroup.toSubNegMonoid.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) x) (AddCommGroup.toAddGroup.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) x) (DirectSum.instAddCommGroupDirectSumToAddCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) ((fun (i : ι) => _inst_4 i) i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) ((fun (i : ι) => _inst_4 i) i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) ((fun (i : ι) => _inst_4 i) j) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) ((fun (i : ι) => _inst_4 i) j) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))) x) (OfNat.ofNat.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) 0 (Zero.toOfNat0.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (NegZeroClass.toZero.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (SubNegZeroMonoid.toNegZeroClass.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (SubtractionMonoid.toSubNegZeroMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (SubtractionCommMonoid.toSubtractionMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toDivisionAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f))))))))) -> (Exists.{succ u2} ι (fun (j : ι) => And (forall (k : ι), (Membership.mem.{u2, u2} ι (Finset.{u2} ι) (Finset.instMembershipFinset.{u2} ι) k (Dfinsupp.support.{u2, u3} ι (fun (i : ι) => G i) (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => G i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => G i) i) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i))) (fun (i : ι) (x : G i) => instDecidableNot (Eq.{succ u3} (G i) x (OfNat.ofNat.{u3} (G i) 0 (Zero.toOfNat0.{u3} (G i) (AddMonoid.toZero.{u3} ((fun (i : ι) => G i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => G i) i) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)))))) (Classical.propDecidable (Eq.{succ u3} (G i) x (OfNat.ofNat.{u3} (G i) 0 (Zero.toOfNat0.{u3} (G i) (AddMonoid.toZero.{u3} ((fun (i : ι) => G i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => G i) i) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)))))))) x)) -> (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) k j)) (Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) => G j) x) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u3} (LinearMap.{u1, u1, max u3 u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (G j) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i)) (_inst_4 j)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u3} R R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i)) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.toModule.{u1, u2, u3, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (j : ι) => _inst_4 j) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 j) (fun (i : ι) => Module.DirectLimit.totalize.{u1, u2, u3} R _inst_1 ι _inst_2 G (fun (j : ι) => _inst_3 j) (fun (j : ι) => _inst_4 j) f i j)) x) (OfNat.ofNat.{u3} (G j) 0 (Zero.toOfNat0.{u3} (G j) (NegZeroClass.toZero.{u3} (G j) (SubNegZeroMonoid.toNegZeroClass.{u3} (G j) (SubtractionMonoid.toSubNegZeroMonoid.{u3} (G j) (SubtractionCommMonoid.toSubtractionMonoid.{u3} (G j) (AddCommGroup.toDivisionAddCommMonoid.{u3} (G j) (_inst_3 j)))))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align module.direct_limit.of.zero_exact_aux Module.DirectLimit.of.zero_exact_auxₓ'. -/
theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : DirectSum ι G}
(H : Submodule.Quotient.mk x = (0 : DirectLimit G f)) :
@@ -346,10 +313,7 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : DirectS
#align module.direct_limit.of.zero_exact_aux Module.DirectLimit.of.zero_exact_aux
/- warning: module.direct_limit.of.zero_exact -> Module.DirectLimit.of.zero_exact is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} [_inst_7 : DirectedSystem.{u2, u3} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j h))] [_inst_8 : IsDirected.{u2} ι (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2))] {i : ι} {x : G i}, (Eq.{succ (max u2 u3)} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) => (G i) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x) (OfNat.ofNat.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) 0 (OfNat.mk.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) 0 (Zero.zero.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddZeroClass.toHasZero.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddMonoid.toAddZeroClass.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (SubNegMonoid.toAddMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddGroup.toSubNegMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddGroup.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f)))))))))) -> (Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (hij : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Eq.{succ u3} (G j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x) (OfNat.ofNat.{u3} (G j) 0 (OfNat.mk.{u3} (G j) 0 (Zero.zero.{u3} (G j) (AddZeroClass.toHasZero.{u3} (G j) (AddMonoid.toAddZeroClass.{u3} (G j) (SubNegMonoid.toAddMonoid.{u3} (G j) (AddGroup.toSubNegMonoid.{u3} (G j) (AddCommGroup.toAddGroup.{u3} (G j) (_inst_3 j))))))))))))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} [_inst_7 : DirectedSystem.{u2, u3} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) => FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j h))] [_inst_8 : IsDirected.{u2} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.4518 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.4520 : ι) => LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.4518 x._@.Mathlib.Algebra.DirectLimit._hyg.4520)] {i : ι} {x : G i}, (Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) x) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x) (OfNat.ofNat.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) x) 0 (Zero.toOfNat0.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) x) (NegZeroClass.toZero.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) x) (SubNegZeroMonoid.toNegZeroClass.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) x) (SubtractionMonoid.toSubNegZeroMonoid.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) x) (SubtractionCommMonoid.toSubtractionMonoid.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) x) (AddCommGroup.toDivisionAddCommMonoid.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) x) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f))))))))) -> (Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) (fun (hij : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) => Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) x) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x) (OfNat.ofNat.{u3} (G j) 0 (Zero.toOfNat0.{u3} (G j) (NegZeroClass.toZero.{u3} (G j) (SubNegZeroMonoid.toNegZeroClass.{u3} (G j) (SubtractionMonoid.toSubNegZeroMonoid.{u3} (G j) (SubtractionCommMonoid.toSubtractionMonoid.{u3} (G j) (AddCommGroup.toDivisionAddCommMonoid.{u3} (G j) (_inst_3 j)))))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align module.direct_limit.of.zero_exact Module.DirectLimit.of.zero_exactₓ'. -/
/-- A component that corresponds to zero in the direct limit is already zero in some
bigger module in the directed system. -/
@@ -412,10 +376,7 @@ instance : Inhabited (DirectLimit G f) :=
⟨0⟩
/- warning: add_comm_group.direct_limit.of -> AddCommGroup.DirectLimit.of is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))) (i : ι), LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => _inst_3 i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => _inst_3 i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) (_inst_3 i) (_inst_3 j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => _inst_3 i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) (_inst_3 i) (_inst_3 j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => _inst_3 i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) (_inst_3 i) (_inst_3 j) (f i j H)) x))) a))))))))
-but is expected to have type
- forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))) (i : ι), LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))
+<too large>
Case conversion may be inaccurate. Consider using '#align add_comm_group.direct_limit.of AddCommGroup.DirectLimit.ofₓ'. -/
/-- The canonical map from a component to the direct limit. -/
def of (i) : G i →ₗ[ℤ] DirectLimit G f :=
@@ -425,10 +386,7 @@ def of (i) : G i →ₗ[ℤ] DirectLimit G f :=
variable {G f}
/- warning: add_comm_group.direct_limit.of_f -> AddCommGroup.DirectLimit.of_f is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))} {i : ι} {j : ι} (hij : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (x : G i), Eq.{succ (max u1 u2)} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (f i j hij) x)) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)
-but is expected to have type
- forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))} {i : ι} {j : ι} (hij : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) (x : G i), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (FunLike.coe.{succ u2, succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) a) (AddHomClass.toFunLike.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddMonoidHomClass.toAddHomClass.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoidHom.addMonoidHomClass.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))))) (f i j hij) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j) (FunLike.coe.{succ u2, succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) _x) (AddHomClass.toFunLike.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddMonoidHomClass.toAddHomClass.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoidHom.addMonoidHomClass.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))))) (f i j hij) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)
+<too large>
Case conversion may be inaccurate. Consider using '#align add_comm_group.direct_limit.of_f AddCommGroup.DirectLimit.of_fₓ'. -/
@[simp]
theorem of_f {i j} (hij) (x) : of G f j (f i j hij x) = of G f i x :=
@@ -436,10 +394,7 @@ theorem of_f {i j} (hij) (x) : of G f j (f i j hij x) = of G f i x :=
#align add_comm_group.direct_limit.of_f AddCommGroup.DirectLimit.of_f
/- warning: add_comm_group.direct_limit.induction_on -> AddCommGroup.DirectLimit.induction_on is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))} [_inst_4 : Nonempty.{succ u1} ι] [_inst_5 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] {C : (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> Prop} (z : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f), (forall (i : ι) (x : G i), C (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) -> (C z)
-but is expected to have type
- forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))} [_inst_4 : Nonempty.{succ u1} ι] [_inst_5 : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.5270 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.5272 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.5270 x._@.Mathlib.Algebra.DirectLimit._hyg.5272)] {C : (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> Prop} (z : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f), (forall (i : ι) (x : G i), C (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) -> (C z)
+<too large>
Case conversion may be inaccurate. Consider using '#align add_comm_group.direct_limit.induction_on AddCommGroup.DirectLimit.induction_onₓ'. -/
@[elab_as_elim]
protected theorem induction_on [Nonempty ι] [IsDirected ι (· ≤ ·)] {C : DirectLimit G f → Prop}
@@ -448,10 +403,7 @@ protected theorem induction_on [Nonempty ι] [IsDirected ι (· ≤ ·)] {C : Di
#align add_comm_group.direct_limit.induction_on AddCommGroup.DirectLimit.induction_on
/- warning: add_comm_group.direct_limit.of.zero_exact -> AddCommGroup.DirectLimit.of.zero_exact is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))} [_inst_4 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] [_inst_5 : DirectedSystem.{u1, u2} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (f i j h))] (i : ι) (x : G i), (Eq.{succ (max u1 u2)} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x) (OfNat.ofNat.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) 0 (OfNat.mk.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) 0 (Zero.zero.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddZeroClass.toHasZero.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))))))))) -> (Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (hij : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Eq.{succ u2} (G j) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (f i j hij) x) (OfNat.ofNat.{u2} (G j) 0 (OfNat.mk.{u2} (G j) 0 (Zero.zero.{u2} (G j) (AddZeroClass.toHasZero.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))))))))
-but is expected to have type
- forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))} [_inst_4 : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.5359 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.5361 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.5359 x._@.Mathlib.Algebra.DirectLimit._hyg.5361)] [_inst_5 : DirectedSystem.{u1, u2} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) _x) (AddHomClass.toFunLike.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddMonoidHomClass.toAddHomClass.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoidHom.addMonoidHomClass.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))))) (f i j h))] (i : ι) (x : G i), (Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) x) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x) (OfNat.ofNat.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) x) 0 (Zero.toOfNat0.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) x) (NegZeroClass.toZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) x) (SubNegZeroMonoid.toNegZeroClass.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) x) (SubtractionMonoid.toSubNegZeroMonoid.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) x) (SubtractionCommMonoid.toSubtractionMonoid.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) x) (AddCommGroup.toDivisionAddCommMonoid.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) x) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))))))) -> (Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) (fun (hij : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) x) (FunLike.coe.{succ u2, succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) _x) (AddHomClass.toFunLike.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddMonoidHomClass.toAddHomClass.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoidHom.addMonoidHomClass.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))))) (f i j hij) x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) x) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) x) (NegZeroClass.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) x) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) x) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) x) (SubtractionCommMonoid.toSubtractionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) x) (AddCommGroup.toDivisionAddCommMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) x) (_inst_3 j)))))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align add_comm_group.direct_limit.of.zero_exact AddCommGroup.DirectLimit.of.zero_exactₓ'. -/
/-- A component that corresponds to zero in the direct limit is already zero in some
bigger module in the directed system. -/
@@ -469,10 +421,7 @@ variable (Hg : ∀ i j hij x, g j (f i j hij x) = g i x)
variable (G f)
/- warning: add_comm_group.direct_limit.lift -> AddCommGroup.DirectLimit.lift is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))) (P : Type.{u3}) [_inst_4 : AddCommGroup.{u3} P] (g : forall (i : ι), AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))), (forall (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (x : G i), Eq.{succ u3} P (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G j) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (g j) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (f i j hij) x)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G i) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (g i) x)) -> (LinearMap.{0, 0, max u1 u2, u3} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => _inst_3 i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => _inst_3 i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) (_inst_3 i) (_inst_3 j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => _inst_3 i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) (_inst_3 i) (_inst_3 j) (f i j H)) x))) a))))))))) (AddCommGroup.toAddCommMonoid.{u3} P _inst_4) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => _inst_3 i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) (_inst_3 i) (_inst_3 j) (f i j H)) x))) a)))))))) (AddCommGroup.intModule.{u3} P _inst_4))
-but is expected to have type
- forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))) (P : Type.{u3}) [_inst_4 : AddCommGroup.{u3} P] (g : forall (i : ι), AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))), (forall (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) (x : G i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G j) => P) (FunLike.coe.{succ u2, succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) a) (AddHomClass.toFunLike.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddMonoidHomClass.toAddHomClass.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoidHom.addMonoidHomClass.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))))) (f i j hij) x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G j) => P) _x) (AddHomClass.toFunLike.{max u3 u2, u2, u3} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G j) P (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, u3} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) (g j) (FunLike.coe.{succ u2, succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) _x) (AddHomClass.toFunLike.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddMonoidHomClass.toAddHomClass.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoidHom.addMonoidHomClass.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))))) (f i j hij) x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => P) _x) (AddHomClass.toFunLike.{max u3 u2, u2, u3} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G i) P (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, u3} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) (g i) x)) -> (LinearMap.{0, 0, max u2 u1, u3} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.toAddCommMonoid.{u3} P _inst_4) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u3} P _inst_4))
+<too large>
Case conversion may be inaccurate. Consider using '#align add_comm_group.direct_limit.lift AddCommGroup.DirectLimit.liftₓ'. -/
/-- The universal property of the direct limit: maps from the components to another abelian group
that respect the directed system structure (i.e. make some diagram commute) give rise
@@ -485,10 +434,7 @@ def lift : DirectLimit G f →ₗ[ℤ] P :=
variable {G f}
/- warning: add_comm_group.direct_limit.lift_of -> AddCommGroup.DirectLimit.lift_of is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))} (P : Type.{u3}) [_inst_4 : AddCommGroup.{u3} P] (g : forall (i : ι), AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (Hg : forall (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (x : G i), Eq.{succ u3} P (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G j) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (g j) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (f i j hij) x)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G i) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (g i) x)) (i : ι) (x : G i), Eq.{succ u3} P (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (LinearMap.{0, 0, max u1 u2, u3} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) P (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.toAddCommMonoid.{u3} P _inst_4) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (AddCommGroup.intModule.{u3} P _inst_4)) (fun (_x : LinearMap.{0, 0, max u1 u2, u3} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) P (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.toAddCommMonoid.{u3} P _inst_4) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (AddCommGroup.intModule.{u3} P _inst_4)) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) -> P) (LinearMap.hasCoeToFun.{0, 0, max u1 u2, u3} Int Int (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) P Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.toAddCommMonoid.{u3} P _inst_4) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (AddCommGroup.intModule.{u3} P _inst_4) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.lift.{u1, u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f P _inst_4 g Hg) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G i) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (g i) x)
-but is expected to have type
- forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))} (P : Type.{u3}) [_inst_4 : AddCommGroup.{u3} P] (g : forall (i : ι), AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (Hg : forall (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) (x : G i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G j) => P) (FunLike.coe.{succ u2, succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) a) (AddHomClass.toFunLike.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddMonoidHomClass.toAddHomClass.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoidHom.addMonoidHomClass.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))))) (f i j hij) x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G j) => P) _x) (AddHomClass.toFunLike.{max u3 u2, u2, u3} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G j) P (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, u3} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) (g j) (FunLike.coe.{succ u2, succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) _x) (AddHomClass.toFunLike.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddMonoidHomClass.toAddHomClass.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoidHom.addMonoidHomClass.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))))) (f i j hij) x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => P) _x) (AddHomClass.toFunLike.{max u3 u2, u2, u3} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G i) P (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, u3} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) (g i) x)) (i : ι) (x : G i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), max (succ u1) (succ u2), succ u3} (LinearMap.{0, 0, max u2 u1, u3} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.toAddCommMonoid.{u3} P _inst_4) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u3} P _inst_4)) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (_x : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{0, 0, max u1 u2, u3} Int Int (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.toAddCommMonoid.{u3} P _inst_4) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u3} P _inst_4) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.lift.{u1, u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f P _inst_4 g Hg) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => P) _x) (AddHomClass.toFunLike.{max u3 u2, u2, u3} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G i) P (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, u3} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) (g i) x)
+<too large>
Case conversion may be inaccurate. Consider using '#align add_comm_group.direct_limit.lift_of AddCommGroup.DirectLimit.lift_ofₓ'. -/
@[simp]
theorem lift_of (i x) : lift G f P g Hg (of G f i x) = g i x :=
@@ -496,10 +442,7 @@ theorem lift_of (i x) : lift G f P g Hg (of G f i x) = g i x :=
#align add_comm_group.direct_limit.lift_of AddCommGroup.DirectLimit.lift_of
/- warning: add_comm_group.direct_limit.lift_unique -> AddCommGroup.DirectLimit.lift_unique is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))} (P : Type.{u3}) [_inst_4 : AddCommGroup.{u3} P] [_inst_5 : Nonempty.{succ u1} ι] [_inst_6 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] (F : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (x : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f), Eq.{succ u3} P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F x) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (LinearMap.{0, 0, max u1 u2, u3} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) P (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.toAddCommMonoid.{u3} P _inst_4) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (AddCommGroup.intModule.{u3} P _inst_4)) (fun (_x : LinearMap.{0, 0, max u1 u2, u3} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) P (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.toAddCommMonoid.{u3} P _inst_4) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (AddCommGroup.intModule.{u3} P _inst_4)) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) -> P) (LinearMap.hasCoeToFun.{0, 0, max u1 u2, u3} Int Int (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) P Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.toAddCommMonoid.{u3} P _inst_4) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (AddCommGroup.intModule.{u3} P _inst_4) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.lift.{u1, u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f P _inst_4 (fun (i : ι) => AddMonoidHom.comp.{u2, max u1 u2, u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) (fun (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (x : G i) => Eq.mpr.{0} (Eq.{succ u3} P (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G j) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) ((fun (i : ι) => AddMonoidHom.comp.{u2, max u1 u2, u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) j) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G i) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) ((fun (i : ι) => AddMonoidHom.comp.{u2, max u1 u2, u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) i) x)) True (id_tag Tactic.IdTag.simp (Eq.{1} Prop (Eq.{succ u3} P (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G j) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) ((fun (i : ι) => AddMonoidHom.comp.{u2, max u1 u2, u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) j) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G i) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) ((fun (i : ι) => AddMonoidHom.comp.{u2, max u1 u2, u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) i) x)) True) (Eq.trans.{1} Prop (Eq.{succ u3} P (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G j) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) ((fun (i : ι) => AddMonoidHom.comp.{u2, max u1 u2, u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) j) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G i) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) ((fun (i : ι) => AddMonoidHom.comp.{u2, max u1 u2, u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) i) x)) (Eq.{succ u3} P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x))) True ((fun (a : P) (a_1 : P) (e_1 : Eq.{succ u3} P a a_1) (ᾰ : P) (ᾰ_1 : P) (e_2 : Eq.{succ u3} P ᾰ ᾰ_1) => congr.{succ u3, 1} P Prop (Eq.{succ u3} P a) (Eq.{succ u3} P a_1) ᾰ ᾰ_1 (congr_arg.{succ u3, succ u3} P (P -> Prop) a a_1 (Eq.{succ u3} P) e_1) e_2) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G j) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) ((fun (i : ι) => AddMonoidHom.comp.{u2, max u1 u2, u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) j) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (Eq.trans.{succ u3} ((fun (ᾰ : G j) => P) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G j) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHom.comp.{u2, max u1 u2, u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j))) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x))) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (Eq.trans.{succ u3} ((fun (ᾰ : G j) => P) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G j) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHom.comp.{u2, max u1 u2, u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j))) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j)) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x))) (Eq.trans.{succ u3} ((fun (ᾰ : G j) => P) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G j) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHom.comp.{u2, max u1 u2, u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j))) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) => (G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j))) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j)) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) (congr_fun.{succ u2, succ u3} (G j) (fun (ᾰ : G j) => P) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G j) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHom.comp.{u2, max u1 u2, u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j)))) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) => (G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j)))) (AddMonoidHom.coe_comp.{u2, max u1 u2, u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j))) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) ((fun (f_1 : (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (f_2 : (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (e_1 : Eq.{max (succ (max u1 u2)) (succ u3)} ((AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) f_1 f_2) (g : (G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (g_1 : (G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (e_2 : Eq.{max (succ u2) (succ (max u1 u2))} ((G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) g g_1) (ᾰ : G j) (ᾰ_1 : G j) (e_3 : Eq.{succ u2} (G j) ᾰ ᾰ_1) => congr.{succ u2, succ u3} (G j) P (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P f_1 g) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P f_2 g_1) ᾰ ᾰ_1 (congr.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ u3)} ((G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) ((G j) -> P) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P f_1) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P f_2) g g_1 (congr_arg.{max (succ (max u1 u2)) (succ u3), max (max (succ u2) (succ (max u1 u2))) (succ u2) (succ u3)} ((AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (((G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) -> (G j) -> P) f_1 f_2 (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P) e_1) e_2) e_3) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (rfl.{max (succ (max u1 u2)) (succ u3)} ((fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) F) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) => (G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j)) (LinearMap.toAddMonoidHom_coe.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j)) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x) (rfl.{succ u2} (G j) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)))) (Function.comp_apply.{succ u2, succ (max u1 u2), succ u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j)) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x))) ((fun [_inst_1 : CoeFun.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P)] (x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (x_1 : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (e_2 : Eq.{max (succ u3) (succ (max u1 u2))} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) x x_1) (ᾰ : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (ᾰ_1 : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (e_3 : Eq.{succ (max u1 u2)} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) ᾰ ᾰ_1) => congr.{succ (max u1 u2), succ u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) _inst_1 x) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) _inst_1 x_1) ᾰ ᾰ_1 (congr_arg.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) ((fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) x) x x_1 (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) _inst_1) e_2) e_3) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F F (rfl.{max (succ u3) (succ (max u1 u2))} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x) (AddCommGroup.DirectLimit.of_f.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i j hij x))) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G i) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) ((fun (i : ι) => AddMonoidHom.comp.{u2, max u1 u2, u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) i) x) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (Eq.trans.{succ u3} ((fun (ᾰ : G i) => P) x) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G i) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHom.comp.{u2, max u1 u2, u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) x) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i)) x) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (Eq.trans.{succ u3} ((fun (ᾰ : G i) => P) x) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G i) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHom.comp.{u2, max u1 u2, u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) x) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) x) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i)) x) (congr_fun.{succ u2, succ u3} (G i) (fun (ᾰ : G i) => P) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G i) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHom.comp.{u2, max u1 u2, u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i)))) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i)))) (AddMonoidHom.coe_comp.{u2, max u1 u2, u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) x) ((fun (f_1 : (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (f_2 : (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (e_1 : Eq.{max (succ (max u1 u2)) (succ u3)} ((AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) f_1 f_2) (g : (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (g_1 : (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (e_2 : Eq.{max (succ u2) (succ (max u1 u2))} ((G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) g g_1) (ᾰ : G i) (ᾰ_1 : G i) (e_3 : Eq.{succ u2} (G i) ᾰ ᾰ_1) => congr.{succ u2, succ u3} (G i) P (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P f_1 g) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P f_2 g_1) ᾰ ᾰ_1 (congr.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ u3)} ((G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) ((G i) -> P) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P f_1) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P f_2) g g_1 (congr_arg.{max (succ (max u1 u2)) (succ u3), max (max (succ u2) (succ (max u1 u2))) (succ u2) (succ u3)} ((AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (((G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) -> (G i) -> P) f_1 f_2 (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P) e_1) e_2) e_3) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (rfl.{max (succ (max u1 u2)) (succ u3)} ((fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) F) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i)) (LinearMap.toAddMonoidHom_coe.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i)) x x (rfl.{succ u2} (G i) x))) (Function.comp_apply.{succ u2, succ (max u1 u2), succ u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i)) x))) (propext (Eq.{succ u3} P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x))) True (eq_self_iff_true.{succ u3} P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)))))) trivial)) x)
-but is expected to have type
- forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))} (P : Type.{u3}) [_inst_4 : AddCommGroup.{u3} P] [_inst_5 : Nonempty.{succ u1} ι] [_inst_6 : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.6070 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.6072 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.6070 x._@.Mathlib.Algebra.DirectLimit._hyg.6072)] (F : AddMonoidHom.{max u2 u1, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (x : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) x) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), max (succ u1) (succ u2), succ u3} (AddMonoidHom.{max u2 u1, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (_x : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) _x) (AddHomClass.toFunLike.{max (max u3 u1) u2, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddZeroClass.toAdd.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u1) u2, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) F x) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), max (succ u1) (succ u2), succ u3} (LinearMap.{0, 0, max u2 u1, u3} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.toAddCommMonoid.{u3} P _inst_4) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u3} P _inst_4)) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (_x : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{0, 0, max u1 u2, u3} Int Int (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.toAddCommMonoid.{u3} P _inst_4) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u3} P _inst_4) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.lift.{u1, u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f P _inst_4 (fun (i : ι) => AddMonoidHom.comp.{u2, max u1 u2, u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) (fun (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) (x : G i) => of_eq_true (Eq.{succ u3} P (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddZeroClass.toAdd.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G j) (fun (a : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j) (FunLike.coe.{succ u2, succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) a) (AddHomClass.toFunLike.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddMonoidHomClass.toAddHomClass.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoidHom.addMonoidHomClass.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))))) (f i j hij) x))) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddZeroClass.toAdd.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u2) (succ (max u1 u2)), succ u2, succ (max u1 u2)} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G i) (fun (a : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x))) (Eq.trans.{1} Prop (Eq.{succ u3} P (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddZeroClass.toAdd.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G j) (fun (a : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j) (FunLike.coe.{succ u2, succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) a) (AddHomClass.toFunLike.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddMonoidHomClass.toAddHomClass.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoidHom.addMonoidHomClass.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))))) (f i j hij) x))) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddZeroClass.toAdd.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u2) (succ (max u1 u2)), succ u2, succ (max u1 u2)} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G i) (fun (a : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x))) (Eq.{succ u3} P (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddZeroClass.toAdd.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddZeroClass.toAdd.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u2) (succ (max u1 u2)), succ u2, succ (max u1 u2)} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G i) (fun (a : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x))) True (congrFun.{succ u3, 1} P (fun (a._@.Init.Prelude._hyg.170 : P) => Prop) (Eq.{succ u3} P (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddZeroClass.toAdd.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G j) (fun (a : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j) (FunLike.coe.{succ u2, succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) a) (AddHomClass.toFunLike.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddMonoidHomClass.toAddHomClass.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoidHom.addMonoidHomClass.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))))) (f i j hij) x)))) (Eq.{succ u3} P (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddZeroClass.toAdd.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x))) (congrArg.{succ u3, succ u3} P (P -> Prop) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddZeroClass.toAdd.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G j) (fun (a : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j) (FunLike.coe.{succ u2, succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) a) (AddHomClass.toFunLike.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddMonoidHomClass.toAddHomClass.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoidHom.addMonoidHomClass.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))))) (f i j hij) x))) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddZeroClass.toAdd.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (Eq.{succ u3} P) (congrArg.{succ (max u2 u1), succ u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G j) (fun (a : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j) (FunLike.coe.{succ u2, succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) a) (AddHomClass.toFunLike.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddMonoidHomClass.toAddHomClass.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoidHom.addMonoidHomClass.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))))) (f i j hij) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddZeroClass.toAdd.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) F) (AddCommGroup.DirectLimit.of_f.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i j hij x))) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddZeroClass.toAdd.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u2) (succ (max u1 u2)), succ u2, succ (max u1 u2)} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G i) (fun (a : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x))) (eq_self.{succ u3} P (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddZeroClass.toAdd.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G i) (fun (a : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)))))) x)
+<too large>
Case conversion may be inaccurate. Consider using '#align add_comm_group.direct_limit.lift_unique AddCommGroup.DirectLimit.lift_uniqueₓ'. -/
theorem lift_unique [Nonempty ι] [IsDirected ι (· ≤ ·)] (F : DirectLimit G f →+ P) (x) :
F x = lift G f P (fun i => F.comp (of G f i).toAddMonoidHom) (fun i j hij x => by simp) x :=
@@ -567,10 +510,7 @@ def of (i) : G i →+* DirectLimit G f :=
variable {G f}
/- warning: ring.direct_limit.of_f -> Ring.DirectLimit.of_f is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (G i) -> (G j)} {i : ι} {j : ι} (hij : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (x : G i), Eq.{succ (max u1 u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) => (G j) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j) (f i j hij x)) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)
-but is expected to have type
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (G i) -> (G j)} {i : ι} {j : ι} (hij : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) (x : G i), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G j) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (f i j hij x)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G j) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j) (f i j hij x)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)
+<too large>
Case conversion may be inaccurate. Consider using '#align ring.direct_limit.of_f Ring.DirectLimit.of_fₓ'. -/
@[simp]
theorem of_f {i j} (hij) (x) : of G f j (f i j hij x) = of G f i x :=
@@ -578,10 +518,7 @@ theorem of_f {i j} (hij) (x) : of G f j (f i j hij x) = of G f i x :=
#align ring.direct_limit.of_f Ring.DirectLimit.of_f
/- warning: ring.direct_limit.exists_of -> Ring.DirectLimit.exists_of is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (G i) -> (G j)} [_inst_4 : Nonempty.{succ u1} ι] [_inst_5 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] (z : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f), Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x) z))
-but is expected to have type
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (G i) -> (G j)} [_inst_4 : Nonempty.{succ u1} ι] [_inst_5 : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.7021 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.7023 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.7021 x._@.Mathlib.Algebra.DirectLimit._hyg.7023)] (z : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f), Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) x) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x) z))
+<too large>
Case conversion may be inaccurate. Consider using '#align ring.direct_limit.exists_of Ring.DirectLimit.exists_ofₓ'. -/
/-- Every element of the direct limit corresponds to some element in
some component of the directed system. -/
@@ -611,10 +548,7 @@ open Polynomial
variable {f' : ∀ i j, i ≤ j → G i →+* G j}
/- warning: ring.direct_limit.polynomial.exists_of -> Ring.DirectLimit.Polynomial.exists_of is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] {f' : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))} [_inst_4 : Nonempty.{succ u1} ι] [_inst_5 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] (q : Polynomial.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))))), Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (Polynomial.{u2} (G i) (Ring.toSemiring.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (fun (p : Polynomial.{u2} (G i) (Ring.toSemiring.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) => Eq.{succ (max u1 u2)} (Polynomial.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))))) (Polynomial.map.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.toSemiring.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i))) (Ring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i) p) q))
-but is expected to have type
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] {f' : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))} [_inst_4 : Nonempty.{succ u1} ι] [_inst_5 : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.7600 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.7602 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.7600 x._@.Mathlib.Algebra.DirectLimit._hyg.7602)] (q : Polynomial.{max u2 u1} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => G j) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => G j) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' i j h)))))), Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (Polynomial.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (fun (p : Polynomial.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) => Eq.{max (succ u1) (succ u2)} (Polynomial.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => G j) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => G j) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' i j h)))))) (Polynomial.map.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => G j) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' i j h))) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => G j) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' i j h))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => G j) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' i j h)) i) p) q))
+<too large>
Case conversion may be inaccurate. Consider using '#align ring.direct_limit.polynomial.exists_of Ring.DirectLimit.Polynomial.exists_ofₓ'. -/
theorem Polynomial.exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)]
(q : Polynomial (DirectLimit G fun i j h => f' i j h)) :
@@ -637,10 +571,7 @@ theorem Polynomial.exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)]
end
/- warning: ring.direct_limit.induction_on -> Ring.DirectLimit.induction_on is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (G i) -> (G j)} [_inst_4 : Nonempty.{succ u1} ι] [_inst_5 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] {C : (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> Prop} (z : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f), (forall (i : ι) (x : G i), C (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) -> (C z)
-but is expected to have type
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (G i) -> (G j)} [_inst_4 : Nonempty.{succ u1} ι] [_inst_5 : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.8039 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.8041 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.8039 x._@.Mathlib.Algebra.DirectLimit._hyg.8041)] {C : (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> Prop} (z : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f), (forall (i : ι) (x : G i), C (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) -> (C z)
+<too large>
Case conversion may be inaccurate. Consider using '#align ring.direct_limit.induction_on Ring.DirectLimit.induction_onₓ'. -/
@[elab_as_elim]
theorem induction_on [Nonempty ι] [IsDirected ι (· ≤ ·)] {C : DirectLimit G f → Prop}
@@ -660,10 +591,7 @@ variable [DirectedSystem G fun i j h => f' i j h]
variable (G f)
/- warning: ring.direct_limit.of.zero_exact_aux2 -> Ring.DirectLimit.of.zero_exact_aux2 is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] (f' : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))) [_inst_4 : DirectedSystem.{u1, u2} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))] {x : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))} {s : Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))} {t : Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))}, (FreeCommRing.IsSupported.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) x s) -> (forall {j : ι} {k : ι} (hj : forall (z : Sigma.{u1, u2} ι (fun (i : ι) => G i)), (Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) z s) -> (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) z) j)) (hk : forall (z : Sigma.{u1, u2} ι (fun (i : ι) => G i)), (Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) z t) -> (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) z) k)) (hjk : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) j k), (HasSubset.Subset.{max u1 u2} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasSubset.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s t) -> (Eq.{succ u2} (G k) (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G j) (G k) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))) (NonAssocRing.toNonAssocSemiring.{u2} (G k) (Ring.toNonAssocRing.{u2} (G k) (CommRing.toRing.{u2} (G k) (_inst_3 k))))) (fun (_x : RingHom.{u2, u2} (G j) (G k) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))) (NonAssocRing.toNonAssocSemiring.{u2} (G k) (Ring.toNonAssocRing.{u2} (G k) (CommRing.toRing.{u2} (G k) (_inst_3 k))))) => (G j) -> (G k)) (RingHom.hasCoeToFun.{u2, u2} (G j) (G k) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))) (NonAssocRing.toNonAssocSemiring.{u2} (G k) (Ring.toNonAssocRing.{u2} (G k) (CommRing.toRing.{u2} (G k) (_inst_3 k))))) (f' j k hjk) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (G j) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (G j) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) -> (G j)) (RingHom.hasCoeToFun.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (G j) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (coeFn.{max 1 (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} (Equiv.{max (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} ((coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) -> (G j)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (G j) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} ((coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) -> (G j)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (G j) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))) => ((coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) -> (G j)) -> (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (G j) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} ((coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) -> (G j)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (G j) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))) (FreeCommRing.lift.{max u1 u2, u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) (G j) (_inst_3 j)) (fun (ix : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Ring.toNonAssocRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Ring.toNonAssocRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Ring.toNonAssocRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)) j (hj ((fun (a : Type.{max u1 u2}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ (max u1 u2), max (succ u1) (succ u2)} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (HasLiftT.mk.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (CoeTCₓ.coe.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (coeBase.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (coeSubtype.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s))))) ix) (Subtype.property.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)))))) (fun (_x : RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)))))) => (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) -> (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))) (RingHom.hasCoeToFun.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)))))) (FreeCommRing.restriction.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s (fun (a : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Classical.propDecidable ((fun (_x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) _x s) a))) x))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (G k) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t))))) (NonAssocRing.toNonAssocSemiring.{u2} (G k) (Ring.toNonAssocRing.{u2} (G k) (CommRing.toRing.{u2} (G k) (_inst_3 k))))) (fun (_x : RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (G k) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t))))) (NonAssocRing.toNonAssocSemiring.{u2} (G k) (Ring.toNonAssocRing.{u2} (G k) (CommRing.toRing.{u2} (G k) (_inst_3 k))))) => (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) -> (G k)) (RingHom.hasCoeToFun.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (G k) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t))))) (NonAssocRing.toNonAssocSemiring.{u2} (G k) (Ring.toNonAssocRing.{u2} (G k) (CommRing.toRing.{u2} (G k) (_inst_3 k))))) (coeFn.{max 1 (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} (Equiv.{max (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} ((coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t) -> (G k)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (G k) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t))))) (NonAssocRing.toNonAssocSemiring.{u2} (G k) (Ring.toNonAssocRing.{u2} (G k) (CommRing.toRing.{u2} (G k) (_inst_3 k)))))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} ((coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t) -> (G k)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (G k) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t))))) (NonAssocRing.toNonAssocSemiring.{u2} (G k) (Ring.toNonAssocRing.{u2} (G k) (CommRing.toRing.{u2} (G k) (_inst_3 k)))))) => ((coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t) -> (G k)) -> (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (G k) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t))))) (NonAssocRing.toNonAssocSemiring.{u2} (G k) (Ring.toNonAssocRing.{u2} (G k) (CommRing.toRing.{u2} (G k) (_inst_3 k)))))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} ((coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t) -> (G k)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (G k) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t))))) (NonAssocRing.toNonAssocSemiring.{u2} (G k) (Ring.toNonAssocRing.{u2} (G k) (CommRing.toRing.{u2} (G k) (_inst_3 k)))))) (FreeCommRing.lift.{max u1 u2, u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t) (G k) (_inst_3 k)) (fun (ix : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (NonAssocRing.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Ring.toNonAssocRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (NonAssocRing.toNonAssocSemiring.{u2} (G k) (Ring.toNonAssocRing.{u2} (G k) (CommRing.toRing.{u2} (G k) (_inst_3 k))))) (fun (_x : RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (NonAssocRing.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Ring.toNonAssocRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (NonAssocRing.toNonAssocSemiring.{u2} (G k) (Ring.toNonAssocRing.{u2} (G k) (CommRing.toRing.{u2} (G k) (_inst_3 k))))) => (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) -> (G k)) (RingHom.hasCoeToFun.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (NonAssocRing.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Ring.toNonAssocRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (NonAssocRing.toNonAssocSemiring.{u2} (G k) (Ring.toNonAssocRing.{u2} (G k) (CommRing.toRing.{u2} (G k) (_inst_3 k))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)) k (hk ((fun (a : Type.{max u1 u2}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ (max u1 u2), max (succ u1) (succ u2)} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t) (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (HasLiftT.mk.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t) (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (CoeTCₓ.coe.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t) (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (coeBase.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t) (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (coeSubtype.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t))))) ix) (Subtype.property.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)))))) (fun (_x : RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)))))) => (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) -> (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t))) (RingHom.hasCoeToFun.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)))))) (FreeCommRing.restriction.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t (fun (a : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Classical.propDecidable ((fun (_x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) _x t) a))) x))))
-but is expected to have type
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] (f' : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) [_inst_4 : DirectedSystem.{u1, u2} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => G j) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' i j h))] {x : FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => G i))} {s : Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))} {t : Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))}, (FreeCommRing.IsSupported.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) x s) -> (forall {j : ι} {k : ι} (hj : forall (z : Sigma.{u1, u2} ι (fun (i : ι) => G i)), (Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) z s) -> (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) z) j)) (hk : forall (z : Sigma.{u1, u2} ι (fun (i : ι) => G i)), (Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) z t) -> (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) z) k)) (hjk : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) j k), (HasSubset.Subset.{max u1 u2} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instHasSubsetSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s t) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G j) => G k) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), succ u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (fun (a : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)) j (hj (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (fun (a : FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) => G j) a) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (fun (a : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)) j (hj (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (fun (a : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)) j (hj (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (fun (a : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)) j (hj (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (FunLike.coe.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (Equiv.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} ((Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) ((Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) (fun (a : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) a) (Equiv.instFunLikeEquiv.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} ((Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (FreeCommRing.lift.{max u1 u2, u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) (G j) (_inst_3 j)) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (fun (a : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)) j (hj (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) a) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (RingHom.instRingHomClassRingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))))))) (FreeCommRing.restriction.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s (fun (a : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Classical.propDecidable ((fun (x._@.Mathlib.RingTheory.FreeCommRing._hyg.1466 : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x._@.Mathlib.RingTheory.FreeCommRing._hyg.1466 s) a))) x))) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G j) (G k) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G j) => G k) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G j) (G k) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G j) (G k) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G k) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G j) (G k) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G j) (G k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G k) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G j) (G k) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G j) (G k) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G j) (G k) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))))) (f' j k hjk) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), succ u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (fun (a : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)) j (hj (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (fun (_x : FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) => G j) _x) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (fun (a : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)) j (hj (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (fun (a : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)) j (hj (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (fun (a : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)) j (hj (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (FunLike.coe.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (Equiv.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} ((Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) ((Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) (fun (_x : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} ((Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (FreeCommRing.lift.{max u1 u2, u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) (G j) (_inst_3 j)) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (fun (_x : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => G j) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)) j (hj (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (_x : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) _x) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (RingHom.instRingHomClassRingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))))))) (FreeCommRing.restriction.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s (fun (a : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Classical.propDecidable ((fun (_x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) _x s) a))) x))) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), succ u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) -> (G k)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (G k) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (fun (a : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) => G k) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G k) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G k) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)) k (hk (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (fun (_x : FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) => G k) _x) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) -> (G k)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (G k) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (fun (a : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) => G k) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G k) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G k) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)) k (hk (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (G k) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G k) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) -> (G k)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (G k) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (fun (a : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) => G k) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G k) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G k) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)) k (hk (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (G k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G k) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) -> (G k)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (G k) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (fun (a : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) => G k) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G k) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G k) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)) k (hk (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (G k) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))) (RingHom.instRingHomClassRingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (G k) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))))) (FunLike.coe.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (Equiv.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} ((Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) -> (G k)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (G k) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))) ((Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) -> (G k)) (fun (_x : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) -> (G k)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) -> (G k)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (G k) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} ((Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) -> (G k)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (G k) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))) (FreeCommRing.lift.{max u1 u2, u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) (G k) (_inst_3 k)) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (fun (_x : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) => G k) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G k) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G k) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)) k (hk (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (_x : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) _x) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t))))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t))))) (RingHom.instRingHomClassRingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t))))))))) (FreeCommRing.restriction.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t (fun (a : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Classical.propDecidable ((fun (_x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) _x t) a))) x))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ring.direct_limit.of.zero_exact_aux2 Ring.DirectLimit.of.zero_exact_aux2ₓ'. -/
theorem of.zero_exact_aux2 {x : FreeCommRing (Σi, G i)} {s t} (hxs : IsSupported x s) {j k}
(hj : ∀ z : Σi, G i, z ∈ s → z.1 ≤ j) (hk : ∀ z : Σi, G i, z ∈ t → z.1 ≤ k) (hjk : j ≤ k)
@@ -697,10 +625,7 @@ theorem of.zero_exact_aux2 {x : FreeCommRing (Σi, G i)} {s t} (hxs : IsSupporte
variable {G f f'}
/- warning: ring.direct_limit.of.zero_exact_aux -> Ring.DirectLimit.of.zero_exact_aux is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] {f' : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))} [_inst_4 : DirectedSystem.{u1, u2} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))] [_inst_5 : Nonempty.{succ u1} ι] [_inst_6 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] {x : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))}, (Eq.{succ (max u1 u2)} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Ideal.hasQuotient.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Ideal.hasQuotient.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Ideal.hasQuotient.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))) (Ring.toNonAssocRing.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Ideal.hasQuotient.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))) (CommRing.toRing.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Ideal.hasQuotient.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))) (Ideal.Quotient.commRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))))))) (fun (_x : RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Ideal.hasQuotient.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Ideal.hasQuotient.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))) (Ring.toNonAssocRing.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Ideal.hasQuotient.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))) (CommRing.toRing.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Ideal.hasQuotient.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))) (Ideal.Quotient.commRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))))))) => (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) -> (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Ideal.hasQuotient.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a))))))))))) (RingHom.hasCoeToFun.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Ideal.hasQuotient.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Ideal.hasQuotient.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))) (Ring.toNonAssocRing.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Ideal.hasQuotient.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))) (CommRing.toRing.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Ideal.hasQuotient.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))) (Ideal.Quotient.commRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))))))) (Ideal.Quotient.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))) x) (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) 0 (OfNat.mk.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) 0 (Zero.zero.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (MulZeroClass.toHasZero.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)))))))))))) -> (Exists.{succ u1} ι (fun (j : ι) => Exists.{succ (max u1 u2)} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (s : Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Exists.{0} (forall (k : Sigma.{u1, u2} ι (fun (i : ι) => G i)), (Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) k s) -> (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) k) j)) (fun (H : forall (k : Sigma.{u1, u2} ι (fun (i : ι) => G i)), (Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) k s) -> (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) k) j)) => And (FreeCommRing.IsSupported.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) x s) (Eq.{succ u2} (G j) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (G j) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (G j) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) -> (G j)) (RingHom.hasCoeToFun.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (G j) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (coeFn.{max 1 (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} (Equiv.{max (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} ((coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) -> (G j)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (G j) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} ((coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) -> (G j)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (G j) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))) => ((coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) -> (G j)) -> (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (G j) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} ((coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) -> (G j)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (G j) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))) (FreeCommRing.lift.{max u1 u2, u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) (G j) (_inst_3 j)) (fun (ix : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Ring.toNonAssocRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Ring.toNonAssocRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Ring.toNonAssocRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)) j (H ((fun (a : Type.{max u1 u2}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ (max u1 u2), max (succ u1) (succ u2)} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (HasLiftT.mk.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (CoeTCₓ.coe.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (coeBase.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (coeSubtype.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s))))) ix) (Subtype.property.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)))))) (fun (_x : RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)))))) => (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) -> (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))) (RingHom.hasCoeToFun.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)))))) (FreeCommRing.restriction.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s (fun (a : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Classical.propDecidable ((fun (_x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) _x s) a))) x)) (OfNat.ofNat.{u2} (G j) 0 (OfNat.mk.{u2} (G j) 0 (Zero.zero.{u2} (G j) (MulZeroClass.toHasZero.{u2} (G j) (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} (G j) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (G j) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))))))))))))
-but is expected to have type
- forall {ι : Type.{u1}} [_inst_2 : DecidableEq.{succ u1} ι] [G : Preorder.{u1} ι] {_inst_3 : ι -> Type.{u2}} [f' : forall (i : ι), CommRing.{u2} (_inst_3 i)] {_inst_4 : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) -> (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))} [_inst_5 : DirectedSystem.{u1, u2} ι G _inst_3 (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))] [_inst_6 : Nonempty.{succ u1} ι] [x : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.9013 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.9015 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι G) x._@.Mathlib.Algebra.DirectLimit._hyg.9013 x._@.Mathlib.Algebra.DirectLimit._hyg.9015)] {H : FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))}, (Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) H) (FunLike.coe.{succ (max u1 u2), succ (max u1 u2), succ (max u1 u2)} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommSemiring.toSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommRing.toCommSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Ideal.Quotient.commRing.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))))))) (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) a) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommSemiring.toSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommRing.toCommSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Ideal.Quotient.commRing.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))))))) (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Semiring.toNonAssocSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommSemiring.toSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommRing.toCommSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Ideal.Quotient.commRing.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a))))))))))))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommSemiring.toSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommRing.toCommSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Ideal.Quotient.commRing.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))))))) (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Semiring.toNonAssocSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommSemiring.toSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommRing.toCommSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Ideal.Quotient.commRing.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommSemiring.toSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommRing.toCommSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Ideal.Quotient.commRing.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))))))) (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommSemiring.toSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommRing.toCommSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Ideal.Quotient.commRing.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a))))))))))))) (RingHom.instRingHomClassRingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommSemiring.toSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommRing.toCommSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Ideal.Quotient.commRing.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a))))))))))))))))) (Ideal.Quotient.mk.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) H) (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) 0 (Zero.toOfNat0.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.zero.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)))))) -> (Exists.{succ u1} ι (fun (j : ι) => Exists.{succ (max u1 u2)} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (s : Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Exists.{0} (forall (k : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)), (Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) k s) -> (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) k) j)) (fun (H_1 : forall (k : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)), (Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) k s) -> (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) k) j)) => And (FreeCommRing.IsSupported.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) H s) (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) => _inst_3 j) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) a) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))) (RingHom.instRingHomClassRingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))))))) (FreeCommRing.restriction.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s (fun (a : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Classical.propDecidable ((fun (x._@.Mathlib.RingTheory.FreeCommRing._hyg.1466 : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x._@.Mathlib.RingTheory.FreeCommRing._hyg.1466 s) a))) H)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), succ u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) -> (_inst_3 j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (_inst_3 j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (fun (a : _inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)) j (H_1 (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (fun (a : FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) => _inst_3 j) a) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) -> (_inst_3 j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (_inst_3 j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (fun (a : _inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)) j (H_1 (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) -> (_inst_3 j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (_inst_3 j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (fun (a : _inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)) j (H_1 (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) -> (_inst_3 j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (_inst_3 j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (fun (a : _inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)) j (H_1 (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (_inst_3 j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (_inst_3 j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (FunLike.coe.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (Equiv.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} ((Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) -> (_inst_3 j)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (_inst_3 j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) ((Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) -> (_inst_3 j)) (fun (a : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) -> (_inst_3 j)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) -> (_inst_3 j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (_inst_3 j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) a) (Equiv.instFunLikeEquiv.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} ((Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) -> (_inst_3 j)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (_inst_3 j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (FreeCommRing.lift.{max u1 u2, u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) (_inst_3 j) (f' j)) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (fun (a : _inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)) j (H_1 (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) a) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))) (RingHom.instRingHomClassRingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))))))) (FreeCommRing.restriction.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s (fun (a : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Classical.propDecidable ((fun (x._@.Mathlib.RingTheory.FreeCommRing._hyg.1466 : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x._@.Mathlib.RingTheory.FreeCommRing._hyg.1466 s) a))) H)) (OfNat.ofNat.{u2} (_inst_3 j) 0 (Zero.toOfNat0.{u2} (_inst_3 j) (CommMonoidWithZero.toZero.{u2} (_inst_3 j) (CommSemiring.toCommMonoidWithZero.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ring.direct_limit.of.zero_exact_aux Ring.DirectLimit.of.zero_exact_auxₓ'. -/
theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCommRing (Σi, G i)}
(H : Ideal.Quotient.mk _ x = (0 : DirectLimit G fun i j h => f' i j h)) :
@@ -800,10 +725,7 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
#align ring.direct_limit.of.zero_exact_aux Ring.DirectLimit.of.zero_exact_aux
/- warning: ring.direct_limit.of.zero_exact -> Ring.DirectLimit.of.zero_exact is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] {f' : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))} [_inst_4 : DirectedSystem.{u1, u2} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))] [_inst_5 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] {i : ι} {x : G i}, (Eq.{succ (max u1 u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)))))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)))))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)))) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i) x) (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) 0 (OfNat.mk.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) 0 (Zero.zero.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (MulZeroClass.toHasZero.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)))))))))))) -> (Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (hij : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Eq.{succ u2} (G j) (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j hij) x) (OfNat.ofNat.{u2} (G j) 0 (OfNat.mk.{u2} (G j) 0 (Zero.zero.{u2} (G j) (MulZeroClass.toHasZero.{u2} (G j) (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} (G j) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (G j) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))))))))))
-but is expected to have type
- forall {ι : Type.{u1}} [_inst_2 : DecidableEq.{succ u1} ι] [G : Preorder.{u1} ι] {_inst_3 : ι -> Type.{u2}} [f' : forall (i : ι), CommRing.{u2} (_inst_3 i)] {_inst_4 : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) -> (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))} [_inst_5 : DirectedSystem.{u1, u2} ι G _inst_3 (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))] [i : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.10740 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.10742 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι G) x._@.Mathlib.Algebra.DirectLimit._hyg.10740 x._@.Mathlib.Algebra.DirectLimit._hyg.10742)] {x : ι} {hix : _inst_3 x}, (Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 x) => Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) hix) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (_inst_3 x) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))))))) (_inst_3 x) (fun (a : _inst_3 x) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 x) => Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) a) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (_inst_3 x) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))))))) (_inst_3 x) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 x) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)))))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (_inst_3 x) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))))))) (_inst_3 x) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 x) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (_inst_3 x) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))))))) (_inst_3 x) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)))))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (_inst_3 x) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)))))))))) (Ring.DirectLimit.of.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) x) hix) (OfNat.ofNat.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 x) => Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) hix) 0 (Zero.toOfNat0.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 x) => Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) hix) (Ring.DirectLimit.zero.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)))))) -> (Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) x j) (fun (hij : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) x j) => Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 x) => _inst_3 j) hix) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 x) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 x) (fun (a : _inst_3 x) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 x) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 x) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 x) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 x) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 x) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 x) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 x) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 x) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 x) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 x) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 x j hij) hix) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 x) => _inst_3 j) hix) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 x) => _inst_3 j) hix) (CommMonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 x) => _inst_3 j) hix) (CommSemiring.toCommMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 x) => _inst_3 j) hix) (CommRing.toCommSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 x) => _inst_3 j) hix) (f' j)))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ring.direct_limit.of.zero_exact Ring.DirectLimit.of.zero_exactₓ'. -/
/-- A component that corresponds to zero in the direct limit is already zero in some
bigger module in the directed system. -/
@@ -820,10 +742,7 @@ end OfZeroExact
variable (f' : ∀ i j, i ≤ j → G i →+* G j)
/- warning: ring.direct_limit.of_injective -> Ring.DirectLimit.of_injective is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] (f' : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))) [_inst_4 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] [_inst_5 : DirectedSystem.{u1, u2} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))], (forall (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j), Function.Injective.{succ u2, succ u2} (G i) (G j) (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j hij))) -> (forall (i : ι), Function.Injective.{succ u2, succ (max u1 u2)} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)))))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)))))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)))) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i)))
-but is expected to have type
- forall {ι : Type.{u1}} [_inst_2 : DecidableEq.{succ u1} ι] [G : Preorder.{u1} ι] {_inst_3 : ι -> Type.{u2}} [f' : forall (i : ι), CommRing.{u2} (_inst_3 i)] (_inst_4 : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) -> (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) [_inst_5 : IsDirected.{u1} ι (fun (i : ι) (j : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j)] [hf : DirectedSystem.{u1, u2} ι G _inst_3 (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))], (forall (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j), Function.Injective.{succ u2, succ u2} (_inst_3 i) (_inst_3 j) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j hij))) -> (forall (i : ι), Function.Injective.{succ u2, max (succ u1) (succ u2)} (_inst_3 i) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (_inst_3 i) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) a) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (_inst_3 i) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))))))) (_inst_3 i) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)))))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (_inst_3 i) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))))))) (_inst_3 i) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (_inst_3 i) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))))))) (_inst_3 i) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)))))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (_inst_3 i) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)))))))))) (Ring.DirectLimit.of.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i)))
+<too large>
Case conversion may be inaccurate. Consider using '#align ring.direct_limit.of_injective Ring.DirectLimit.of_injectiveₓ'. -/
/-- If the maps in the directed system are injective, then the canonical maps
from the components to the direct limits are injective. -/
@@ -856,10 +775,7 @@ open FreeCommRing
variable (G f)
/- warning: ring.direct_limit.lift -> Ring.DirectLimit.lift is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (G i) -> (G j)) (P : Type.{u3}) [_inst_4 : CommRing.{u3} P] (g : forall (i : ι), RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))), (forall (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (x : G i), Eq.{succ u3} P (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G j) -> P) (RingHom.hasCoeToFun.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (g j) (f i j hij x)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G i) -> P) (RingHom.hasCoeToFun.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (g i) x)) -> (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))))
-but is expected to have type
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (G i) -> (G j)) (P : Type.{u3}) [_inst_4 : CommRing.{u3} P] (g : forall (i : ι), RingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))), (forall (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) (x : G i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G j) => P) (f i j hij x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (RingHom.{u2, u3} (G j) P (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G j) => P) _x) (MulHomClass.toFunLike.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G j) P (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G j) P (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G j) P (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G j) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G j) P (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G j) P (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{u2, u3} (G j) P (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) (g j) (f i j hij x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (RingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => P) _x) (MulHomClass.toFunLike.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G i) P (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G i) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) (g i) x)) -> (RingHom.{max u2 u1, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ring.direct_limit.lift Ring.DirectLimit.liftₓ'. -/
/-- The universal property of the direct limit: maps from the components to another ring
that respect the directed system structure (i.e. make some diagram commute) give rise
@@ -885,10 +801,7 @@ variable {G f}
omit Hg
/- warning: ring.direct_limit.lift_of -> Ring.DirectLimit.lift_of is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (G i) -> (G j)} (P : Type.{u3}) [_inst_4 : CommRing.{u3} P] (g : forall (i : ι), RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (Hg : forall (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (x : G i), Eq.{succ u3} P (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G j) -> P) (RingHom.hasCoeToFun.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (g j) (f i j hij x)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G i) -> P) (RingHom.hasCoeToFun.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (g i) x)) (i : ι) (x : G i), Eq.{succ u3} P (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (Ring.DirectLimit.lift.{u1, u2, u3} ι _inst_2 G (fun (i : ι) => _inst_3 i) f P _inst_4 g Hg) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G i) -> P) (RingHom.hasCoeToFun.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (g i) x)
-but is expected to have type
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (G i) -> (G j)} (P : Type.{u3}) [_inst_4 : CommRing.{u3} P] (g : forall (i : ι), RingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Hg : forall (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) (x : G i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G j) => P) (f i j hij x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (RingHom.{u2, u3} (G j) P (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G j) => P) _x) (MulHomClass.toFunLike.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G j) P (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G j) P (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G j) P (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G j) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G j) P (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G j) P (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{u2, u3} (G j) P (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) (g j) (f i j hij x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (RingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => P) _x) (MulHomClass.toFunLike.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G i) P (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G i) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) (g i) x)) (i : ι) (x : G i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), max (succ u1) (succ u2), succ u3} (RingHom.{max u2 u1, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (_x : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) _x) (MulHomClass.toFunLike.{max (max u3 u1) u2, max u1 u2, u3} (RingHom.{max u2 u1, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u3 u1) u2, max u1 u2, u3} (RingHom.{max u2 u1, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u3 u1) u2, max u1 u2, u3} (RingHom.{max u2 u1, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) (Ring.DirectLimit.lift.{u1, u2, u3} ι _inst_2 G (fun (i : ι) => _inst_3 i) f P _inst_4 g Hg) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (RingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => P) _x) (MulHomClass.toFunLike.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G i) P (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G i) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) (g i) x)
+<too large>
Case conversion may be inaccurate. Consider using '#align ring.direct_limit.lift_of Ring.DirectLimit.lift_ofₓ'. -/
@[simp]
theorem lift_of (i x) : lift G f P g Hg (of G f i x) = g i x :=
@@ -896,10 +809,7 @@ theorem lift_of (i x) : lift G f P g Hg (of G f i x) = g i x :=
#align ring.direct_limit.lift_of Ring.DirectLimit.lift_of
/- warning: ring.direct_limit.lift_unique -> Ring.DirectLimit.lift_unique is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (G i) -> (G j)} (P : Type.{u3}) [_inst_4 : CommRing.{u3} P] [_inst_5 : Nonempty.{succ u1} ι] [_inst_6 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] (F : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (x : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f), Eq.{succ u3} P (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F x) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (Ring.DirectLimit.lift.{u1, u2, u3} ι _inst_2 G (fun (i : ι) => _inst_3 i) f P _inst_4 (fun (i : ι) => RingHom.comp.{u2, max u1 u2, u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i)) (fun (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (x : G i) => Eq.mpr.{0} (Eq.{succ u3} P (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G j) -> P) (RingHom.hasCoeToFun.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) ((fun (i : ι) => RingHom.comp.{u2, max u1 u2, u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i)) j) (f i j hij x)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G i) -> P) (RingHom.hasCoeToFun.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) ((fun (i : ι) => RingHom.comp.{u2, max u1 u2, u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i)) i) x)) True (id_tag Tactic.IdTag.simp (Eq.{1} Prop (Eq.{succ u3} P (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G j) -> P) (RingHom.hasCoeToFun.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) ((fun (i : ι) => RingHom.comp.{u2, max u1 u2, u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i)) j) (f i j hij x)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G i) -> P) (RingHom.hasCoeToFun.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) ((fun (i : ι) => RingHom.comp.{u2, max u1 u2, u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i)) i) x)) True) (Eq.trans.{1} Prop (Eq.{succ u3} P (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G j) -> P) (RingHom.hasCoeToFun.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) ((fun (i : ι) => RingHom.comp.{u2, max u1 u2, u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i)) j) (f i j hij x)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G i) -> P) (RingHom.hasCoeToFun.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) ((fun (i : ι) => RingHom.comp.{u2, max u1 u2, u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i)) i) x)) (Eq.{succ u3} P (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x))) True ((fun (a : P) (a_1 : P) (e_1 : Eq.{succ u3} P a a_1) (ᾰ : P) (ᾰ_1 : P) (e_2 : Eq.{succ u3} P ᾰ ᾰ_1) => congr.{succ u3, 1} P Prop (Eq.{succ u3} P a) (Eq.{succ u3} P a_1) ᾰ ᾰ_1 (congr_arg.{succ u3, succ u3} P (P -> Prop) a a_1 (Eq.{succ u3} P) e_1) e_2) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G j) -> P) (RingHom.hasCoeToFun.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) ((fun (i : ι) => RingHom.comp.{u2, max u1 u2, u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i)) j) (f i j hij x)) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (Eq.trans.{succ u3} ((fun (ᾰ : G j) => P) (f i j hij x)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G j) -> P) (RingHom.hasCoeToFun.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (RingHom.comp.{u2, max u1 u2, u3} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j)) (f i j hij x)) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) => (G j) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j) (f i j hij x))) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (Eq.trans.{succ u3} ((fun (ᾰ : G j) => P) (f i j hij x)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G j) -> P) (RingHom.hasCoeToFun.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (RingHom.comp.{u2, max u1 u2, u3} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j)) (f i j hij x)) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) => (G j) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j)) (f i j hij x)) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) => (G j) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j) (f i j hij x))) (congr_fun.{succ u2, succ u3} (G j) (fun (ᾰ : G j) => P) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G j) -> P) (RingHom.hasCoeToFun.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (RingHom.comp.{u2, max u1 u2, u3} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j))) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) => (G j) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j))) (RingHom.coe_comp.{u2, max u1 u2, u3} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j)) (f i j hij x)) (Function.comp_apply.{succ u2, succ (max u1 u2), succ u3} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) => (G j) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j)) (f i j hij x))) ((fun [_inst_1 : CoeFun.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P)] (x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (x_1 : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (e_2 : Eq.{max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) x x_1) (ᾰ : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (ᾰ_1 : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (e_3 : Eq.{succ (max u1 u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) ᾰ ᾰ_1) => congr.{succ (max u1 u2), succ u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) _inst_1 x) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) _inst_1 x_1) ᾰ ᾰ_1 (congr_arg.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) ((fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) x) x x_1 (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) _inst_1) e_2) e_3) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F F (rfl.{max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) => (G j) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j) (f i j hij x)) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x) (Ring.DirectLimit.of_f.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i j hij x))) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G i) -> P) (RingHom.hasCoeToFun.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) ((fun (i : ι) => RingHom.comp.{u2, max u1 u2, u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i)) i) x) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (Eq.trans.{succ u3} ((fun (ᾰ : G i) => P) x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G i) -> P) (RingHom.hasCoeToFun.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (RingHom.comp.{u2, max u1 u2, u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i)) x) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i)) x) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (congr_fun.{succ u2, succ u3} (G i) (fun (ᾰ : G i) => P) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G i) -> P) (RingHom.hasCoeToFun.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (RingHom.comp.{u2, max u1 u2, u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i))) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i))) (RingHom.coe_comp.{u2, max u1 u2, u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i)) x) (Function.comp_apply.{succ u2, succ (max u1 u2), succ u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i)) x))) (propext (Eq.{succ u3} P (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x))) True (eq_self_iff_true.{succ u3} P (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)))))) trivial)) x)
-but is expected to have type
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (G i) -> (G j)} (P : Type.{u3}) [_inst_4 : CommRing.{u3} P] [_inst_5 : Nonempty.{succ u1} ι] [_inst_6 : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.12263 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.12265 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.12263 x._@.Mathlib.Algebra.DirectLimit._hyg.12265)] (F : RingHom.{max u2 u1, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (x : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) x) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), max (succ u1) (succ u2), succ u3} (RingHom.{max u2 u1, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (_x : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) _x) (MulHomClass.toFunLike.{max (max u3 u1) u2, max u1 u2, u3} (RingHom.{max u2 u1, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u3 u1) u2, max u1 u2, u3} (RingHom.{max u2 u1, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u3 u1) u2, max u1 u2, u3} (RingHom.{max u2 u1, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) F x) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), max (succ u1) (succ u2), succ u3} (RingHom.{max u2 u1, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (_x : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) _x) (MulHomClass.toFunLike.{max (max u3 u1) u2, max u1 u2, u3} (RingHom.{max u2 u1, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u3 u1) u2, max u1 u2, u3} (RingHom.{max u2 u1, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u3 u1) u2, max u1 u2, u3} (RingHom.{max u2 u1, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) (Ring.DirectLimit.lift.{u1, u2, u3} ι _inst_2 G (fun (i : ι) => _inst_3 i) f P _inst_4 (fun (i : ι) => RingHom.comp.{u2, max u1 u2, u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i)) (fun (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) (x : G i) => of_eq_true (Eq.{succ u3} P (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (MulHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (fun (a : G j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G j) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j) (f i j hij x))) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (MulHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u2) (succ (max u1 u2)), succ u2, succ (max u1 u2)} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (fun (a : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x))) (Eq.trans.{1} Prop (Eq.{succ u3} P (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (MulHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (fun (a : G j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G j) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j) (f i j hij x))) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (MulHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u2) (succ (max u1 u2)), succ u2, succ (max u1 u2)} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (fun (a : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x))) (Eq.{succ u3} P (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (MulHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (MulHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u2) (succ (max u1 u2)), succ u2, succ (max u1 u2)} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (fun (a : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x))) True (congrFun.{succ u3, 1} P (fun (a._@.Init.Prelude._hyg.170 : P) => Prop) (Eq.{succ u3} P (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (MulHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (fun (a : G j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G j) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j) (f i j hij x)))) (Eq.{succ u3} P (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (MulHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x))) (congrArg.{succ u3, succ u3} P (P -> Prop) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (MulHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (fun (a : G j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G j) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j) (f i j hij x))) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (MulHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (Eq.{succ u3} P) (congrArg.{succ (max u1 u2), succ u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (fun (a : G j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G j) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j) (f i j hij x)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (MulHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) F) (Ring.DirectLimit.of_f.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i j hij x))) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (MulHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u2) (succ (max u1 u2)), succ u2, succ (max u1 u2)} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (fun (a : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x))) (eq_self.{succ u3} P (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (MulHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (fun (a : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)))))) x)
+<too large>
Case conversion may be inaccurate. Consider using '#align ring.direct_limit.lift_unique Ring.DirectLimit.lift_uniqueₓ'. -/
theorem lift_unique [Nonempty ι] [IsDirected ι (· ≤ ·)] (F : DirectLimit G f →+* P) (x) :
F x = lift G f P (fun i => F.comp <| of G f i) (fun i j hij x => by simp) x :=
@@ -923,10 +833,7 @@ variable (f' : ∀ i j, i ≤ j → G i →+* G j)
namespace DirectLimit
/- warning: field.direct_limit.nontrivial -> Field.DirectLimit.nontrivial is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : Nonempty.{succ u1} ι] [_inst_4 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] [_inst_5 : forall (i : ι), Field.{u2} (G i)] (f' : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (DivisionRing.toRing.{u2} (G i) (Field.toDivisionRing.{u2} (G i) (_inst_5 i))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (DivisionRing.toRing.{u2} (G j) (Field.toDivisionRing.{u2} (G j) (_inst_5 j))))))) [_inst_6 : DirectedSystem.{u1, u2} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (DivisionRing.toRing.{u2} (G i) (Field.toDivisionRing.{u2} (G i) (_inst_5 i))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (DivisionRing.toRing.{u2} (G j) (Field.toDivisionRing.{u2} (G j) (_inst_5 j)))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (DivisionRing.toRing.{u2} (G i) (Field.toDivisionRing.{u2} (G i) (_inst_5 i))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (DivisionRing.toRing.{u2} (G j) (Field.toDivisionRing.{u2} (G j) (_inst_5 j)))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (DivisionRing.toRing.{u2} (G i) (Field.toDivisionRing.{u2} (G i) (_inst_5 i))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (DivisionRing.toRing.{u2} (G j) (Field.toDivisionRing.{u2} (G j) (_inst_5 j)))))) (f' i j h))], Nontrivial.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (DivisionRing.toRing.{u2} (G i) (Field.toDivisionRing.{u2} (G i) (_inst_5 i))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (DivisionRing.toRing.{u2} (G j) (Field.toDivisionRing.{u2} (G j) (_inst_5 j)))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (DivisionRing.toRing.{u2} (G i) (Field.toDivisionRing.{u2} (G i) (_inst_5 i))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (DivisionRing.toRing.{u2} (G j) (Field.toDivisionRing.{u2} (G j) (_inst_5 j)))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (DivisionRing.toRing.{u2} (G i) (Field.toDivisionRing.{u2} (G i) (_inst_5 i))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (DivisionRing.toRing.{u2} (G j) (Field.toDivisionRing.{u2} (G j) (_inst_5 j)))))) (f' i j h)))
-but is expected to have type
- forall {ι : Type.{u1}} [_inst_2 : DecidableEq.{succ u1} ι] [G : Preorder.{u1} ι] (_inst_3 : ι -> Type.{u2}) [_inst_4 : Nonempty.{succ u1} ι] [_inst_5 : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.12543 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.12545 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι G) x._@.Mathlib.Algebra.DirectLimit._hyg.12543 x._@.Mathlib.Algebra.DirectLimit._hyg.12545)] [f' : forall (i : ι), Field.{u2} (_inst_3 i)] (_inst_6 : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) -> (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j))))))) [inst._@.Mathlib.Algebra.DirectLimit._hyg.12596 : DirectedSystem.{u1, u2} ι G _inst_3 (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j))))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j))))))))) (_inst_6 i j h))], Nontrivial.{max u2 u1} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => Field.toCommRing.{u2} (_inst_3 i) (f' i)) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j))))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j))))))))) (_inst_6 i j h)))
+<too large>
Case conversion may be inaccurate. Consider using '#align field.direct_limit.nontrivial Field.DirectLimit.nontrivialₓ'. -/
instance nontrivial [DirectedSystem G fun i j h => f' i j h] :
Nontrivial (Ring.DirectLimit G fun i j h => f' i j h) :=
@@ -990,10 +897,7 @@ protected theorem inv_mul_cancel {p : Ring.DirectLimit G f} (hp : p ≠ 0) : inv
#align field.direct_limit.inv_mul_cancel Field.DirectLimit.inv_mul_cancel
/- warning: field.direct_limit.field -> Field.DirectLimit.field is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : Nonempty.{succ u1} ι] [_inst_4 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] [_inst_5 : forall (i : ι), Field.{u2} (G i)] (f' : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (DivisionRing.toRing.{u2} (G i) (Field.toDivisionRing.{u2} (G i) (_inst_5 i))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (DivisionRing.toRing.{u2} (G j) (Field.toDivisionRing.{u2} (G j) (_inst_5 j))))))) [_inst_6 : DirectedSystem.{u1, u2} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (DivisionRing.toRing.{u2} (G i) (Field.toDivisionRing.{u2} (G i) (_inst_5 i))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (DivisionRing.toRing.{u2} (G j) (Field.toDivisionRing.{u2} (G j) (_inst_5 j)))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (DivisionRing.toRing.{u2} (G i) (Field.toDivisionRing.{u2} (G i) (_inst_5 i))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (DivisionRing.toRing.{u2} (G j) (Field.toDivisionRing.{u2} (G j) (_inst_5 j)))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (DivisionRing.toRing.{u2} (G i) (Field.toDivisionRing.{u2} (G i) (_inst_5 i))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (DivisionRing.toRing.{u2} (G j) (Field.toDivisionRing.{u2} (G j) (_inst_5 j)))))) (f' i j h))], Field.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (DivisionRing.toRing.{u2} (G i) (Field.toDivisionRing.{u2} (G i) (_inst_5 i))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (DivisionRing.toRing.{u2} (G j) (Field.toDivisionRing.{u2} (G j) (_inst_5 j)))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (DivisionRing.toRing.{u2} (G i) (Field.toDivisionRing.{u2} (G i) (_inst_5 i))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (DivisionRing.toRing.{u2} (G j) (Field.toDivisionRing.{u2} (G j) (_inst_5 j)))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (DivisionRing.toRing.{u2} (G i) (Field.toDivisionRing.{u2} (G i) (_inst_5 i))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (DivisionRing.toRing.{u2} (G j) (Field.toDivisionRing.{u2} (G j) (_inst_5 j)))))) (f' i j h)))
-but is expected to have type
- forall {ι : Type.{u1}} [_inst_2 : DecidableEq.{succ u1} ι] [G : Preorder.{u1} ι] (_inst_3 : ι -> Type.{u2}) [_inst_4 : Nonempty.{succ u1} ι] [_inst_5 : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.13389 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.13391 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι G) x._@.Mathlib.Algebra.DirectLimit._hyg.13389 x._@.Mathlib.Algebra.DirectLimit._hyg.13391)] [f' : forall (i : ι), Field.{u2} (_inst_3 i)] (_inst_6 : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) -> (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j))))))) [inst._@.Mathlib.Algebra.DirectLimit._hyg.13442 : DirectedSystem.{u1, u2} ι G _inst_3 (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j))))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j))))))))) (_inst_6 i j h))], Field.{max u2 u1} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => Field.toCommRing.{u2} (_inst_3 i) (f' i)) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j))))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j))))))))) (_inst_6 i j h)))
+<too large>
Case conversion may be inaccurate. Consider using '#align field.direct_limit.field Field.DirectLimit.fieldₓ'. -/
/-- Noncomputable field structure on the direct limit of fields.
See note [reducible non-instances]. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/e1a18cad9cd462973d760af7de36b05776b8811c
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kenny Lau, Chris Hughes
! This file was ported from Lean 3 source module algebra.direct_limit
-! leanprover-community/mathlib commit f0c8bf9245297a541f468be517f1bde6195105e9
+! leanprover-community/mathlib commit a87d22575d946e1e156fc1edd1e1269600a8a282
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -16,6 +16,9 @@ import Mathbin.RingTheory.Ideal.Quotient
/-!
# Direct limit of modules, abelian groups, rings, and fields.
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
See Atiyah-Macdonald PP.32-33, Matsumura PP.269-270
Generalizes the notion of "union", or "gluing", of incomparable modules over the same ring,
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -47,6 +47,12 @@ variable [dec_ι : DecidableEq ι] [Preorder ι]
variable (G : ι → Type w)
+/- warning: directed_system -> DirectedSystem is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}), (forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (G i) -> (G j)) -> Prop
+but is expected to have type
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}), (forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (G i) -> (G j)) -> Prop
+Case conversion may be inaccurate. Consider using '#align directed_system DirectedSystemₓ'. -/
/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`map_self] [] -/
/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`map_map] [] -/
/-- A directed system is a functor from a category (directed poset) to another category. -/
@@ -61,12 +67,24 @@ variable [∀ i, AddCommGroup (G i)] [∀ i, Module R (G i)]
variable {G} (f : ∀ i j, i ≤ j → G i →ₗ[R] G j)
+/- warning: module.directed_system.map_self -> Module.DirectedSystem.map_self is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] (f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))) [_inst_5 : DirectedSystem.{u2, u3} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j h))] (i : ι) (x : G i) (h : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i i), Eq.{succ u3} (G i) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G i) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (_inst_4 i) (_inst_4 i)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G i) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (_inst_4 i) (_inst_4 i)) => (G i) -> (G i)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G i) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (_inst_4 i) (_inst_4 i) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i i h) x) x
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] (f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))) [_inst_5 : DirectedSystem.{u2, u3} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) => FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j h))] (i : ι) (x : G i) (h : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G i) x) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G i) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (_inst_4 i) (_inst_4 i)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G i) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G i) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (_inst_4 i) (_inst_4 i) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i i h) x) x
+Case conversion may be inaccurate. Consider using '#align module.directed_system.map_self Module.DirectedSystem.map_selfₓ'. -/
/-- A copy of `directed_system.map_self` specialized to linear maps, as otherwise the
`λ i j h, f i j h` can confuse the simplifier. -/
theorem DirectedSystem.map_self [DirectedSystem G fun i j h => f i j h] (i x h) : f i i h x = x :=
DirectedSystem.map_self (fun i j h => f i j h) i x h
#align module.directed_system.map_self Module.DirectedSystem.map_self
+/- warning: module.directed_system.map_map -> Module.DirectedSystem.map_map is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] (f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))) [_inst_5 : DirectedSystem.{u2, u3} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j h))] {i : ι} {j : ι} {k : ι} (hij : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (hjk : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) j k) (x : G i), Eq.{succ u3} (G k) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (G k) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) (_inst_4 j) (_inst_4 k)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (G k) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) (_inst_4 j) (_inst_4 k)) => (G j) -> (G k)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G j) (G k) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) (_inst_4 j) (_inst_4 k) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f j k hjk) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G k) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) (_inst_4 i) (_inst_4 k)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G k) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) (_inst_4 i) (_inst_4 k)) => (G i) -> (G k)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G k) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) (_inst_4 i) (_inst_4 k) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i k (le_trans.{u2} ι _inst_2 i j k hij hjk)) x)
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] (f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))) [_inst_5 : DirectedSystem.{u2, u3} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) => FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j h))] {i : ι} {j : ι} {k : ι} (hij : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) (hjk : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) j k) (x : G i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => G k) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (G k) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) (_inst_4 j) (_inst_4 k)) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => G k) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G j) (G k) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) (_inst_4 j) (_inst_4 k) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f j k hjk) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G k) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) (_inst_4 i) (_inst_4 k)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G k) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G k) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) (_inst_4 i) (_inst_4 k) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i k (le_trans.{u2} ι _inst_2 i j k hij hjk)) x)
+Case conversion may be inaccurate. Consider using '#align module.directed_system.map_map Module.DirectedSystem.map_mapₓ'. -/
/-- A copy of `directed_system.map_map` specialized to linear maps, as otherwise the
`λ i j h, f i j h` can confuse the simplifier. -/
theorem DirectedSystem.map_map [DirectedSystem G fun i j h => f i j h] {i j k} (hij hjk x) :
@@ -78,6 +96,12 @@ variable (G)
include dec_ι
+/- warning: module.direct_limit -> Module.DirectLimit is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] (G : ι -> Type.{u3}) [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))], (forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))) -> Type.{max u2 u3}
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] (G : ι -> Type.{u3}) [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))], (forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))) -> Type.{max u2 u3}
+Case conversion may be inaccurate. Consider using '#align module.direct_limit Module.DirectLimitₓ'. -/
/-- The direct limit of a directed system is the modules glued together along the maps. -/
def DirectLimit : Type max v w :=
DirectSum ι G ⧸
@@ -100,6 +124,12 @@ instance : Inhabited (DirectLimit G f) :=
variable (R ι)
+/- warning: module.direct_limit.of -> Module.DirectLimit.of is a dubious translation:
+lean 3 declaration is
+ forall (R : Type.{u1}) [_inst_1 : Ring.{u1} R] (ι : Type.{u2}) [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] (G : ι -> Type.{u3}) [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] (f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))) (i : ι), LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => _inst_3 i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => _inst_4 i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => _inst_4 i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => _inst_4 i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => _inst_3 i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => _inst_4 i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => _inst_4 i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => _inst_3 i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (_inst_4 i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => _inst_4 i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => _inst_4 i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => _inst_3 i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))
+but is expected to have type
+ forall (R : Type.{u1}) [_inst_1 : Ring.{u1} R] (ι : Type.{u2}) [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] (G : ι -> Type.{u3}) [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] (f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))) (i : ι), LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)
+Case conversion may be inaccurate. Consider using '#align module.direct_limit.of Module.DirectLimit.ofₓ'. -/
/-- The canonical map from a component to the direct limit. -/
def of (i) : G i →ₗ[R] DirectLimit G f :=
(mkQ _).comp <| DirectSum.lof R ι G i
@@ -107,11 +137,23 @@ def of (i) : G i →ₗ[R] DirectLimit G f :=
variable {R ι G f}
+/- warning: module.direct_limit.of_f -> Module.DirectLimit.of_f is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} {i : ι} {j : ι} {hij : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j} {x : G i}, Eq.{succ (max u2 u3)} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) j) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) j) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) => (G j) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) j) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) => (G i) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x)
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} {i : ι} {j : ι} {hij : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j} {x : G i}, Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x)
+Case conversion may be inaccurate. Consider using '#align module.direct_limit.of_f Module.DirectLimit.of_fₓ'. -/
@[simp]
theorem of_f {i j hij x} : of R ι G f j (f i j hij x) = of R ι G f i x :=
Eq.symm <| (Submodule.Quotient.eq _).2 <| subset_span ⟨i, j, hij, x, rfl⟩
#align module.direct_limit.of_f Module.DirectLimit.of_f
+/- warning: module.direct_limit.exists_of -> Module.DirectLimit.exists_of is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} [_inst_5 : Nonempty.{succ u2} ι] [_inst_6 : IsDirected.{u2} ι (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2))] (z : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f), Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) => (G i) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x) z))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} [_inst_5 : Nonempty.{succ u2} ι] [_inst_6 : IsDirected.{u2} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.1371 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.1373 : ι) => LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.1371 x._@.Mathlib.Algebra.DirectLimit._hyg.1373)] (z : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f), Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) x) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x) z))
+Case conversion may be inaccurate. Consider using '#align module.direct_limit.exists_of Module.DirectLimit.exists_ofₓ'. -/
/-- Every element of the direct limit corresponds to some element in
some component of the directed system. -/
theorem exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)] (z : DirectLimit G f) :
@@ -124,6 +166,12 @@ theorem exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)] (z : DirectLimit G f
⟨k, f i k hik x + f j k hjk y, by rw [LinearMap.map_add, of_f, of_f, ihx, ihy] <;> rfl⟩
#align module.direct_limit.exists_of Module.DirectLimit.exists_of
+/- warning: module.direct_limit.induction_on -> Module.DirectLimit.induction_on is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} [_inst_5 : Nonempty.{succ u2} ι] [_inst_6 : IsDirected.{u2} ι (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2))] {C : (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) -> Prop} (z : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f), (forall (i : ι) (x : G i), C (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) => (G i) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x)) -> (C z)
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} [_inst_5 : Nonempty.{succ u2} ι] [_inst_6 : IsDirected.{u2} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.1651 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.1653 : ι) => LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.1651 x._@.Mathlib.Algebra.DirectLimit._hyg.1653)] {C : (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) -> Prop} (z : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f), (forall (i : ι) (x : G i), C (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x)) -> (C z)
+Case conversion may be inaccurate. Consider using '#align module.direct_limit.induction_on Module.DirectLimit.induction_onₓ'. -/
@[elab_as_elim]
protected theorem induction_on [Nonempty ι] [IsDirected ι (· ≤ ·)] {C : DirectLimit G f → Prop}
(z : DirectLimit G f) (ih : ∀ i x, C (of R ι G f i x)) : C z :=
@@ -139,6 +187,12 @@ include Hg
variable (R ι G f)
+/- warning: module.direct_limit.lift -> Module.DirectLimit.lift is a dubious translation:
+lean 3 declaration is
+ forall (R : Type.{u1}) [_inst_1 : Ring.{u1} R] (ι : Type.{u2}) [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] (G : ι -> Type.{u3}) [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] (f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))) {P : Type.{u4}} [_inst_5 : AddCommGroup.{u4} P] [_inst_6 : Module.{u1, u4} R P (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5)] (g : forall (i : ι), LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6), (forall (i : ι) (j : ι) (hij : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (x : G i), Eq.{succ u4} P (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6) => (G j) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G j) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (g j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (g i) x)) -> (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => _inst_3 i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => _inst_4 i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => _inst_4 i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => _inst_4 i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => _inst_3 i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => _inst_4 i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => _inst_4 i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => _inst_3 i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => _inst_4 i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => _inst_4 i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => _inst_3 i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) _inst_6)
+but is expected to have type
+ forall (R : Type.{u1}) [_inst_1 : Ring.{u1} R] (ι : Type.{u2}) [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] (G : ι -> Type.{u3}) [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] (f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))) {P : Type.{u4}} [_inst_5 : AddCommGroup.{u4} P] [_inst_6 : Module.{u1, u4} R P (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5)] (g : forall (i : ι), LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6), (forall (i : ι) (j : ι) (hij : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) (x : G i), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G j) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (g j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (g i) x)) -> (LinearMap.{u1, u1, max u3 u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6)
+Case conversion may be inaccurate. Consider using '#align module.direct_limit.lift Module.DirectLimit.liftₓ'. -/
/-- The universal property of the direct limit: maps from the components to another module
that respect the directed system structure (i.e. make some diagram commute) give rise
to a unique map out of the direct limit. -/
@@ -153,10 +207,22 @@ variable {R ι G f}
omit Hg
+/- warning: module.direct_limit.lift_of -> Module.DirectLimit.lift_of is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} {P : Type.{u4}} [_inst_5 : AddCommGroup.{u4} P] [_inst_6 : Module.{u1, u4} R P (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5)] (g : forall (i : ι), LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (Hg : forall (i : ι) (j : ι) (hij : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (x : G i), Eq.{succ u4} P (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6) => (G j) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G j) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (g j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (g i) x)) {i : ι} (x : G i), Eq.{succ u4} P (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) _inst_6) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) _inst_6) => (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) -> P) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.lift.{u1, u2, u3, u4} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f P _inst_5 _inst_6 g Hg) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) => (G i) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (g i) x)
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} {P : Type.{u4}} [_inst_5 : AddCommGroup.{u4} P] [_inst_6 : Module.{u1, u4} R P (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5)] (g : forall (i : ι), LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (Hg : forall (i : ι) (j : ι) (hij : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) (x : G i), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G j) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (g j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (g i) x)) {i : ι} (x : G i), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x)) (FunLike.coe.{max (max (succ u4) (succ u2)) (succ u3), max (succ u2) (succ u3), succ u4} (LinearMap.{u1, u1, max u3 u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (fun (_x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.lift.{u1, u2, u3, u4} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f P _inst_5 _inst_6 g Hg) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (g i) x)
+Case conversion may be inaccurate. Consider using '#align module.direct_limit.lift_of Module.DirectLimit.lift_ofₓ'. -/
theorem lift_of {i} (x) : lift R ι G f g Hg (of R ι G f i x) = g i x :=
DirectSum.toModule_lof R _ _
#align module.direct_limit.lift_of Module.DirectLimit.lift_of
+/- warning: module.direct_limit.lift_unique -> Module.DirectLimit.lift_unique is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} {P : Type.{u4}} [_inst_5 : AddCommGroup.{u4} P] [_inst_6 : Module.{u1, u4} R P (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5)] [_inst_7 : Nonempty.{succ u2} ι] [_inst_8 : IsDirected.{u2} ι (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2))] (F : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f), Eq.{succ u4} P (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) => (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) -> P) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F x) (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) _inst_6) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) _inst_6) => (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) -> P) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.lift.{u1, u2, u3, u4} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f P _inst_5 _inst_6 (fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) (fun (i : ι) (j : ι) (hij : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (x : G i) => Eq.mpr.{0} (Eq.{succ u4} P (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6) => (G j) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G j) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (Eq.{succ u4} P (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) => (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) -> P) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) => (G j) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u4} P (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6) => (G j) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G j) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (Eq.{succ u4} P (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) => (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) -> P) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) => (G j) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x))) (Eq.ndrec.{0, succ u4} P (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6) => (G j) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G j) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j)) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (fun (_a : P) => Eq.{1} Prop (Eq.{succ u4} P (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6) => (G j) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G j) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (Eq.{succ u4} P _a (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x))) (rfl.{1} Prop (Eq.{succ u4} P (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6) => (G j) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G j) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x))) (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) => (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) -> P) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) => (G j) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x))) (LinearMap.comp_apply.{u1, u1, u1, u3, max u2 u3, u4} R R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)))) (Eq.mpr.{0} (Eq.{succ u4} P (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) => (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) -> P) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) => (G j) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (Eq.{succ u4} P (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) => (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) -> P) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) => (G i) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u4} P (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) => (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) -> P) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) => (G j) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (Eq.{succ u4} P (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) => (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) -> P) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) => (G i) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x))) (Eq.ndrec.{0, succ (max u2 u3)} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) j) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) j) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) => (G j) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) j) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (fun (_a : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) => Eq.{1} Prop (Eq.{succ u4} P (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) => (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) -> P) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) => (G j) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (Eq.{succ u4} P (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) => (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) -> P) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F _a) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x))) (rfl.{1} Prop (Eq.{succ u4} P (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) => (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) -> P) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) => (G j) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) ((fun (i : ι) => _inst_4 i) j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) (fun (_x : LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6) => (G i) -> P) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) ((fun (i : ι) => _inst_4 i) i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.right_ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) => (G i) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x) (Module.DirectLimit.of_f.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i j hij x))) (rfl.{succ u4} P (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) => (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) -> P) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) => (G i) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x)))))) x)
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} {P : Type.{u4}} [_inst_5 : AddCommGroup.{u4} P] [_inst_6 : Module.{u1, u4} R P (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5)] [_inst_7 : Nonempty.{succ u2} ι] [_inst_8 : IsDirected.{u2} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.2543 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.2545 : ι) => LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.2543 x._@.Mathlib.Algebra.DirectLimit._hyg.2545)] (F : LinearMap.{u1, u1, max u3 u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) x) (FunLike.coe.{max (max (succ u4) (succ u2)) (succ u3), max (succ u2) (succ u3), succ u4} (LinearMap.{u1, u1, max u3 u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (fun (_x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F x) (FunLike.coe.{max (max (succ u4) (succ u2)) (succ u3), max (succ u2) (succ u3), succ u4} (LinearMap.{u1, u1, max u3 u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (fun (_x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.lift.{u1, u2, u3, u4} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f P _inst_5 _inst_6 (fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) (fun (i : ι) (j : ι) (hij : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) (x : G i) => Eq.mpr.{0} (Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G j) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ (max u2 u3)) (succ u4), succ (max u2 u3), succ u4} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (fun (_x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (FunLike.coe.{max (succ u3) (succ (max u2 u3)), succ u3, succ (max u2 u3)} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x))) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (id.{0} (Eq.{1} Prop (Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G j) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ (max u2 u3)) (succ u4), succ (max u2 u3), succ u4} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (fun (_x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (FunLike.coe.{max (succ u3) (succ (max u2 u3)), succ u3, succ (max u2 u3)} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x))) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x))) (Eq.ndrec.{0, succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G j) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j)) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (fun (_a : (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) => Eq.{1} Prop (Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G j) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) _a (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x))) (Eq.refl.{1} Prop (Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) P (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G j) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x))) (FunLike.coe.{max (succ (max u2 u3)) (succ u4), succ (max u2 u3), succ u4} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (fun (_x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (FunLike.coe.{max (succ u3) (succ (max u2 u3)), succ u3, succ (max u2 u3)} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x))) (LinearMap.comp_apply.{max u2 u3, u1, u1, u1, u3, u4} R R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)))) (Eq.mpr.{0} (Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ (max u2 u3)) (succ u4), succ (max u2 u3), succ u4} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (fun (_x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (FunLike.coe.{max (succ u3) (succ (max u2 u3)), succ u3, succ (max u2 u3)} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x))) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ (max u2 u3)) (succ u4), succ (max u2 u3), succ u4} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (fun (_x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (id.{0} (Eq.{1} Prop (Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ (max u2 u3)) (succ u4), succ (max u2 u3), succ u4} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (fun (_x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (FunLike.coe.{max (succ u3) (succ (max u2 u3)), succ u3, succ (max u2 u3)} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x))) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ (max u2 u3)) (succ u4), succ (max u2 u3), succ u4} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (fun (_x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x)) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x))) (Eq.ndrec.{0, succ (max u2 u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (fun (_a : (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) => Eq.{1} Prop (Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ (max u2 u3)) (succ u4), succ (max u2 u3), succ u4} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (fun (_x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (FunLike.coe.{max (succ u3) (succ (max u2 u3)), succ u3, succ (max u2 u3)} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x))) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x)) (Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ (max u2 u3)) (succ u4), succ (max u2 u3), succ u4} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (fun (_x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F _a) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x))) (Eq.refl.{1} Prop (Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ (max u2 u3)) (succ u4), succ (max u2 u3), succ u4} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (fun (_x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (FunLike.coe.{max (succ u3) (succ (max u2 u3)), succ u3, succ (max u2 u3)} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G j) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 j) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x))) (FunLike.coe.{max (succ u4) (succ u3), succ u3, succ u4} (LinearMap.{u1, u1, u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) P (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R (G i) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ((fun (i : ι) => LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomCompTriple.ids.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i)) i) x))) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x) (Module.DirectLimit.of_f.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i j hij x))) (Eq.refl.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => P) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x)) (FunLike.coe.{max (succ (max u2 u3)) (succ u4), succ (max u2 u3), succ u4} (LinearMap.{u1, u1, max u2 u3, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (fun (_x : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) P (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (AddCommGroup.toAddCommMonoid.{u4} P _inst_5) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) F (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x)))))) x)
+Case conversion may be inaccurate. Consider using '#align module.direct_limit.lift_unique Module.DirectLimit.lift_uniqueₓ'. -/
theorem lift_unique [Nonempty ι] [IsDirected ι (· ≤ ·)] (F : DirectLimit G f →ₗ[R] P) (x) :
F x =
lift R ι G f (fun i => F.comp <| of R ι G f i)
@@ -172,6 +238,12 @@ variable (G f)
omit dec_ι
+/- warning: module.direct_limit.totalize -> Module.DirectLimit.totalize is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [_inst_2 : Preorder.{u2} ι] (G : ι -> Type.{u3}) [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))], (forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))) -> (forall (i : ι) (j : ι), LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [_inst_2 : Preorder.{u2} ι] (G : ι -> Type.{u3}) [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))], (forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))) -> (forall (i : ι) (j : ι), LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))
+Case conversion may be inaccurate. Consider using '#align module.direct_limit.totalize Module.DirectLimit.totalizeₓ'. -/
/-- `totalize G f i j` is a linear map from `G i` to `G j`, for *every* `i` and `j`.
If `i ≤ j`, then it is the map `f i j` that comes with the directed system `G`,
and otherwise it is the zero map. -/
@@ -181,10 +253,22 @@ noncomputable def totalize (i j) : G i →ₗ[R] G j :=
variable {G f}
+/- warning: module.direct_limit.totalize_of_le -> Module.DirectLimit.totalize_of_le is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} {i : ι} {j : ι} (h : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j), Eq.{succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (Module.DirectLimit.totalize.{u1, u2, u3} R _inst_1 ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i j) (f i j h)
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} {i : ι} {j : ι} (h : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j), Eq.{succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (Module.DirectLimit.totalize.{u1, u2, u3} R _inst_1 ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i j) (f i j h)
+Case conversion may be inaccurate. Consider using '#align module.direct_limit.totalize_of_le Module.DirectLimit.totalize_of_leₓ'. -/
theorem totalize_of_le {i j} (h : i ≤ j) : totalize G f i j = f i j h :=
dif_pos h
#align module.direct_limit.totalize_of_le Module.DirectLimit.totalize_of_le
+/- warning: module.direct_limit.totalize_of_not_le -> Module.DirectLimit.totalize_of_not_le is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} {i : ι} {j : ι}, (Not (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j)) -> (Eq.{succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (Module.DirectLimit.totalize.{u1, u2, u3} R _inst_1 ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i j) (OfNat.ofNat.{u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) 0 (OfNat.mk.{u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) 0 (Zero.zero.{u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (LinearMap.hasZero.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))))))))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} {i : ι} {j : ι}, (Not (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j)) -> (Eq.{succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (Module.DirectLimit.totalize.{u1, u2, u3} R _inst_1 ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i j) (OfNat.ofNat.{u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) 0 (Zero.toOfNat0.{u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (LinearMap.instZeroLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))))))
+Case conversion may be inaccurate. Consider using '#align module.direct_limit.totalize_of_not_le Module.DirectLimit.totalize_of_not_leₓ'. -/
theorem totalize_of_not_le {i j} (h : ¬i ≤ j) : totalize G f i j = 0 :=
dif_neg h
#align module.direct_limit.totalize_of_not_le Module.DirectLimit.totalize_of_not_le
@@ -195,6 +279,12 @@ variable [DirectedSystem G fun i j h => f i j h]
open Classical
+/- warning: module.direct_limit.to_module_totalize_of_le -> Module.DirectLimit.toModule_totalize_of_le is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} [_inst_7 : DirectedSystem.{u2, u3} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j h))] {x : DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))} {i : ι} {j : ι} (hij : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j), (forall (k : ι), (Membership.Mem.{u2, u2} ι (Finset.{u2} ι) (Finset.hasMem.{u2} ι) k (Dfinsupp.support.{u2, u3} ι (fun (i : ι) => G i) (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (G i) (AddMonoid.toAddZeroClass.{u3} (G i) (AddCommMonoid.toAddMonoid.{u3} (G i) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)))) (fun (i : ι) (x : G i) => Ne.decidable.{succ u3} (G i) (fun (a : G i) (b : G i) => Classical.propDecidable (Eq.{succ u3} (G i) a b)) x (OfNat.ofNat.{u3} (G i) 0 (OfNat.mk.{u3} (G i) 0 (Zero.zero.{u3} (G i) (AddZeroClass.toHasZero.{u3} (G i) (AddMonoid.toAddZeroClass.{u3} (G i) (AddCommMonoid.toAddMonoid.{u3} (G i) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)))))))) x)) -> (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) k i)) -> (Eq.{succ u3} (G j) (coeFn.{max (succ (max u2 u3)) (succ u3), max (succ (max u2 u3)) (succ u3)} (LinearMap.{u1, u1, max u2 u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i)) (G j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i) (fun (i : ι) => (fun {j : ι} => _inst_4 j) i)) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, max u2 u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i)) (G j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i) (fun (i : ι) => (fun {j : ι} => _inst_4 j) i)) (_inst_4 j)) => (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i)) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u3} R R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i)) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i) (fun (i : ι) => (fun {j : ι} => _inst_4 j) i)) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.toModule.{u1, u2, u3, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) (fun {j : ι} => _inst_4 j) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 j) (fun (k : ι) => Module.DirectLimit.totalize.{u1, u2, u3} R _inst_1 ι _inst_2 G (fun {j : ι} => _inst_3 j) (fun {j : ι} => _inst_4 j) f k j)) x) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) (coeFn.{max (succ (max u2 u3)) (succ u3), max (succ (max u2 u3)) (succ u3)} (LinearMap.{u1, u1, max u2 u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i)) (G i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i)) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i) (fun (i : ι) => (fun {i : ι} => _inst_4 i) i)) (_inst_4 i)) (fun (_x : LinearMap.{u1, u1, max u2 u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i)) (G i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i)) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i) (fun (i : ι) => (fun {i : ι} => _inst_4 i) i)) (_inst_4 i)) => (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i)) -> (G i)) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u3} R R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i)) (G i) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i)) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) i) (fun (i : ι) => (fun {i : ι} => _inst_4 i) i)) (_inst_4 i) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.toModule.{u1, u2, u3, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) (fun {i : ι} => _inst_4 i) (G i) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (_inst_4 i) (fun (k : ι) => Module.DirectLimit.totalize.{u1, u2, u3} R _inst_1 ι _inst_2 G (fun {i : ι} => _inst_3 i) (fun {i : ι} => _inst_4 i) f k i)) x)))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} [_inst_7 : DirectedSystem.{u2, u3} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) => FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j h))] {x : DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))} {i : ι} {j : ι} (hij : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j), (forall (k : ι), (Membership.mem.{u2, u2} ι (Finset.{u2} ι) (Finset.instMembershipFinset.{u2} ι) k (Dfinsupp.support.{u2, u3} ι (fun (i : ι) => G i) (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => G i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => G i) i) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i))) (fun (i : ι) (x : G i) => instDecidableNot (Eq.{succ u3} (G i) x (OfNat.ofNat.{u3} (G i) 0 (Zero.toOfNat0.{u3} (G i) (AddMonoid.toZero.{u3} ((fun (i : ι) => G i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => G i) i) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)))))) (Classical.propDecidable (Eq.{succ u3} (G i) x (OfNat.ofNat.{u3} (G i) 0 (Zero.toOfNat0.{u3} (G i) (AddMonoid.toZero.{u3} ((fun (i : ι) => G i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => G i) i) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)))))))) x)) -> (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) k i)) -> (Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) => G j) x) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u3} (LinearMap.{u1, u1, max u3 u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (G j) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i)) (_inst_4 j)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u3} R R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i)) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.toModule.{u1, u2, u3, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (k : ι) => G k) (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) (fun (j : ι) => _inst_4 j) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 j) (fun (k : ι) => Module.DirectLimit.totalize.{u1, u2, u3} R _inst_1 ι _inst_2 G (fun (j : ι) => _inst_3 j) (fun (j : ι) => _inst_4 j) f k j)) x) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u3} (LinearMap.{u1, u1, max u3 u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (G i) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i)) (_inst_4 i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) => G i) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u3} R R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (G i) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i)) (_inst_4 i) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.toModule.{u1, u2, u3, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (k : ι) => G k) (fun (k : ι) => AddCommGroup.toAddCommMonoid.{u3} (G k) (_inst_3 k)) (fun (i : ι) => _inst_4 i) (G i) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (_inst_4 i) (fun (k : ι) => Module.DirectLimit.totalize.{u1, u2, u3} R _inst_1 ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f k i)) x)))
+Case conversion may be inaccurate. Consider using '#align module.direct_limit.to_module_totalize_of_le Module.DirectLimit.toModule_totalize_of_leₓ'. -/
theorem toModule_totalize_of_le {x : DirectSum ι G} {i j : ι} (hij : i ≤ j)
(hx : ∀ k ∈ x.support, k ≤ i) :
DirectSum.toModule R ι (G j) (fun k => totalize G f k j) x =
@@ -208,6 +298,12 @@ theorem toModule_totalize_of_le {x : DirectSum ι G} {i j : ι} (hij : i ≤ j)
totalize_of_le (hx k hk), totalize_of_le (le_trans (hx k hk) hij), DirectedSystem.map_map]
#align module.direct_limit.to_module_totalize_of_le Module.DirectLimit.toModule_totalize_of_le
+/- warning: module.direct_limit.of.zero_exact_aux -> Module.DirectLimit.of.zero_exact_aux is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} [_inst_7 : DirectedSystem.{u2, u3} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j h))] [_inst_8 : Nonempty.{succ u2} ι] [_inst_9 : IsDirected.{u2} ι (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2))] {x : DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))}, (Eq.{succ (max u2 u3)} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => _inst_3 i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => _inst_4 i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => _inst_4 i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => _inst_4 i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => _inst_4 i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => _inst_4 i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.mk.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => _inst_4 i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => _inst_4 i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => _inst_4 i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => _inst_4 i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => _inst_4 i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => _inst_4 i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))) x) (OfNat.ofNat.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) 0 (OfNat.mk.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) 0 (Zero.zero.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddZeroClass.toHasZero.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddMonoid.toAddZeroClass.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (SubNegMonoid.toAddMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddGroup.toSubNegMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddGroup.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)))))))))) -> (Exists.{succ u2} ι (fun (j : ι) => And (forall (k : ι), (Membership.Mem.{u2, u2} ι (Finset.{u2} ι) (Finset.hasMem.{u2} ι) k (Dfinsupp.support.{u2, u3} ι (fun (i : ι) => G i) (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (G i) (AddMonoid.toAddZeroClass.{u3} (G i) (AddCommMonoid.toAddMonoid.{u3} (G i) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)))) (fun (i : ι) (x : G i) => Ne.decidable.{succ u3} (G i) (fun (a : G i) (b : G i) => Classical.propDecidable (Eq.{succ u3} (G i) a b)) x (OfNat.ofNat.{u3} (G i) 0 (OfNat.mk.{u3} (G i) 0 (Zero.zero.{u3} (G i) (AddZeroClass.toHasZero.{u3} (G i) (AddMonoid.toAddZeroClass.{u3} (G i) (AddCommMonoid.toAddMonoid.{u3} (G i) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)))))))) x)) -> (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) k j)) (Eq.{succ u3} (G j) (coeFn.{max (succ (max u2 u3)) (succ u3), max (succ (max u2 u3)) (succ u3)} (LinearMap.{u1, u1, max u2 u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (G j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (j : ι) => _inst_4 j) i)) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, max u2 u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (G j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (j : ι) => _inst_4 j) i)) (_inst_4 j)) => (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u3} R R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (j : ι) => _inst_4 j) i)) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.toModule.{u1, u2, u3, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (j : ι) => _inst_4 j) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 j) (fun (i : ι) => Module.DirectLimit.totalize.{u1, u2, u3} R _inst_1 ι _inst_2 G (fun (j : ι) => _inst_3 j) (fun (j : ι) => _inst_4 j) f i j)) x) (OfNat.ofNat.{u3} (G j) 0 (OfNat.mk.{u3} (G j) 0 (Zero.zero.{u3} (G j) (AddZeroClass.toHasZero.{u3} (G j) (AddMonoid.toAddZeroClass.{u3} (G j) (SubNegMonoid.toAddMonoid.{u3} (G j) (AddGroup.toSubNegMonoid.{u3} (G j) (AddCommGroup.toAddGroup.{u3} (G j) (_inst_3 j))))))))))))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} [_inst_7 : DirectedSystem.{u2, u3} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) => FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j h))] [_inst_8 : Nonempty.{succ u2} ι] [_inst_9 : IsDirected.{u2} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.3797 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.3799 : ι) => LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.3797 x._@.Mathlib.Algebra.DirectLimit._hyg.3799)] {x : DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))}, (Eq.{max (succ u2) (succ u3)} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.instAddCommGroupDirectSumToAddCommMonoid.{u2, u3} ι G (fun (i : ι) => _inst_3 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.instAddCommGroupDirectSumToAddCommMonoid.{u2, u3} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) x) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) x) (instHSub.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) x) (SubNegMonoid.toSub.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) x) (AddGroup.toSubNegMonoid.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) x) (AddCommGroup.toAddGroup.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) x) (DirectSum.instAddCommGroupDirectSumToAddCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) ((fun (i : ι) => _inst_4 i) i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) ((fun (i : ι) => _inst_4 i) i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) ((fun (i : ι) => _inst_4 i) j) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) ((fun (i : ι) => _inst_4 i) j) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.mk.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.instAddCommGroupDirectSumToAddCommMonoid.{u2, u3} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) x) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) x) (instHSub.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) x) (SubNegMonoid.toSub.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) x) (AddGroup.toSubNegMonoid.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) x) (AddCommGroup.toAddGroup.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) x) (DirectSum.instAddCommGroupDirectSumToAddCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) ((fun (i : ι) => _inst_4 i) i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) ((fun (i : ι) => _inst_4 i) i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) ((fun (i : ι) => _inst_4 i) j) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) ((fun (i : ι) => _inst_4 i) j) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))) x) (OfNat.ofNat.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) 0 (Zero.toOfNat0.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (NegZeroClass.toZero.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (SubNegZeroMonoid.toNegZeroClass.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (SubtractionMonoid.toSubNegZeroMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (SubtractionCommMonoid.toSubtractionMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toDivisionAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f))))))))) -> (Exists.{succ u2} ι (fun (j : ι) => And (forall (k : ι), (Membership.mem.{u2, u2} ι (Finset.{u2} ι) (Finset.instMembershipFinset.{u2} ι) k (Dfinsupp.support.{u2, u3} ι (fun (i : ι) => G i) (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => G i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => G i) i) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i))) (fun (i : ι) (x : G i) => instDecidableNot (Eq.{succ u3} (G i) x (OfNat.ofNat.{u3} (G i) 0 (Zero.toOfNat0.{u3} (G i) (AddMonoid.toZero.{u3} ((fun (i : ι) => G i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => G i) i) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)))))) (Classical.propDecidable (Eq.{succ u3} (G i) x (OfNat.ofNat.{u3} (G i) 0 (Zero.toOfNat0.{u3} (G i) (AddMonoid.toZero.{u3} ((fun (i : ι) => G i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => G i) i) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) i)))))))) x)) -> (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) k j)) (Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) => G j) x) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u3} (LinearMap.{u1, u1, max u3 u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (G j) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i)) (_inst_4 j)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u3} R R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (i : ι) => _inst_4 i)) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.toModule.{u1, u2, u3, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => G i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (fun (j : ι) => _inst_4 j) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 j) (fun (i : ι) => Module.DirectLimit.totalize.{u1, u2, u3} R _inst_1 ι _inst_2 G (fun (j : ι) => _inst_3 j) (fun (j : ι) => _inst_4 j) f i j)) x) (OfNat.ofNat.{u3} (G j) 0 (Zero.toOfNat0.{u3} (G j) (NegZeroClass.toZero.{u3} (G j) (SubNegZeroMonoid.toNegZeroClass.{u3} (G j) (SubtractionMonoid.toSubNegZeroMonoid.{u3} (G j) (SubtractionCommMonoid.toSubtractionMonoid.{u3} (G j) (AddCommGroup.toDivisionAddCommMonoid.{u3} (G j) (_inst_3 j)))))))))))
+Case conversion may be inaccurate. Consider using '#align module.direct_limit.of.zero_exact_aux Module.DirectLimit.of.zero_exact_auxₓ'. -/
theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : DirectSum ι G}
(H : Submodule.Quotient.mk x = (0 : DirectLimit G f)) :
∃ j,
@@ -246,6 +342,12 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : DirectS
⟨i, fun k hk => hi k (DirectSum.support_smul _ _ hk), by simp [LinearMap.map_smul, hxi]⟩
#align module.direct_limit.of.zero_exact_aux Module.DirectLimit.of.zero_exact_aux
+/- warning: module.direct_limit.of.zero_exact -> Module.DirectLimit.of.zero_exact is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} [_inst_7 : DirectedSystem.{u2, u3} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j h))] [_inst_8 : IsDirected.{u2} ι (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2))] {i : ι} {x : G i}, (Eq.{succ (max u2 u3)} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) => (G i) -> (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (HasQuotient.Quotient.{max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{max u2 u3} (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.hasQuotient.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i))) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (Submodule.Quotient.addCommGroup.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a))))))))) ((fun (i : ι) => _inst_4 i) i) (Submodule.Quotient.module.{u1, max u2 u3} R (DirectSum.{u2, u3} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i))) _inst_1 (DirectSum.addCommGroup.{u2, u3} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (Submodule.span.{u1, max u2 u3} R (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (setOf.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u2} ι (fun (i : ι) => Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (H : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Exists.{succ u3} (G i) (fun (x : G i) => Eq.{succ (max u2 u3)} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G i) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G i) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i) x) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i))) => (G j) -> (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (G j) (DirectSum.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u2, u3} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R _inst_1) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) ((fun (i : ι) => _inst_3 i) j)) ((fun (i : ι) => _inst_4 i) i) ((fun (i : ι) => _inst_4 i) j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j H) x))) a)))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x) (OfNat.ofNat.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) 0 (OfNat.mk.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) 0 (Zero.zero.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddZeroClass.toHasZero.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddMonoid.toAddZeroClass.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (SubNegMonoid.toAddMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddGroup.toSubNegMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (AddCommGroup.toAddGroup.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i) f)))))))))) -> (Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) (fun (hij : LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_2) i j) => Eq.{succ u3} (G j) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (fun (_x : LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x) (OfNat.ofNat.{u3} (G j) 0 (OfNat.mk.{u3} (G j) 0 (Zero.zero.{u3} (G j) (AddZeroClass.toHasZero.{u3} (G j) (AddMonoid.toAddZeroClass.{u3} (G j) (SubNegMonoid.toAddMonoid.{u3} (G j) (AddGroup.toSubNegMonoid.{u3} (G j) (AddCommGroup.toAddGroup.{u3} (G j) (_inst_3 j))))))))))))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] [_inst_2 : Preorder.{u2} ι] {G : ι -> Type.{u3}} [_inst_3 : forall (i : ι), AddCommGroup.{u3} (G i)] [_inst_4 : forall (i : ι), Module.{u1, u3} R (G i) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i))] {f : forall (i : ι) (j : ι), (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) -> (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j))} [_inst_7 : DirectedSystem.{u2, u3} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) => FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j h))] [_inst_8 : IsDirected.{u2} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.4518 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.4520 : ι) => LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.4518 x._@.Mathlib.Algebra.DirectLimit._hyg.4520)] {i : ι} {x : G i}, (Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) x) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (G i) (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u2 u3} (Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f)) (_inst_4 i) (Module.DirectLimit.module.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (Module.DirectLimit.of.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f i) x) (OfNat.ofNat.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) x) 0 (Zero.toOfNat0.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) x) (NegZeroClass.toZero.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) x) (SubNegZeroMonoid.toNegZeroClass.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) x) (SubtractionMonoid.toSubNegZeroMonoid.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) x) (SubtractionCommMonoid.toSubtractionMonoid.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) x) (AddCommGroup.toDivisionAddCommMonoid.{max u2 u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => Module.DirectLimit.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f) x) (Module.DirectLimit.addCommGroup.{u1, u2, u3} R _inst_1 ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_4 i) f))))))))) -> (Exists.{succ u2} ι (fun (j : ι) => Exists.{0} (LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) (fun (hij : LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_2) i j) => Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) x) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j)) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} R R (G i) (G j) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u3} (G j) (_inst_3 j)) (_inst_4 i) (_inst_4 j) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (f i j hij) x) (OfNat.ofNat.{u3} (G j) 0 (Zero.toOfNat0.{u3} (G j) (NegZeroClass.toZero.{u3} (G j) (SubNegZeroMonoid.toNegZeroClass.{u3} (G j) (SubtractionMonoid.toSubNegZeroMonoid.{u3} (G j) (SubtractionCommMonoid.toSubtractionMonoid.{u3} (G j) (AddCommGroup.toDivisionAddCommMonoid.{u3} (G j) (_inst_3 j)))))))))))
+Case conversion may be inaccurate. Consider using '#align module.direct_limit.of.zero_exact Module.DirectLimit.of.zero_exactₓ'. -/
/-- A component that corresponds to zero in the direct limit is already zero in some
bigger module in the directed system. -/
theorem of.zero_exact [IsDirected ι (· ≤ ·)] {i x} (H : of R ι G f i x = 0) :
@@ -268,6 +370,12 @@ variable [∀ i, AddCommGroup (G i)]
include dec_ι
+/- warning: add_comm_group.direct_limit -> AddCommGroup.DirectLimit is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)], (forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))) -> Type.{max u1 u2}
+but is expected to have type
+ forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)], (forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))) -> Type.{max u2 u1}
+Case conversion may be inaccurate. Consider using '#align add_comm_group.direct_limit AddCommGroup.DirectLimitₓ'. -/
/-- The direct limit of a directed system is the abelian groups glued together along the maps. -/
def DirectLimit (f : ∀ i j, i ≤ j → G i →+ G j) : Type _ :=
@Module.DirectLimit ℤ _ ι _ _ G _ _ fun i j hij => (f i j hij).toIntLinearMap
@@ -279,6 +387,12 @@ variable (f : ∀ i j, i ≤ j → G i →+ G j)
omit dec_ι
+/- warning: add_comm_group.direct_limit.directed_system -> AddCommGroup.DirectLimit.directedSystem is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))) [h : DirectedSystem.{u1, u2} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (f i j h))], DirectedSystem.{u1, u2} ι _inst_2 G (fun (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) (_inst_3 i) (_inst_3 j) (f i j hij)))
+but is expected to have type
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))) [h : DirectedSystem.{u1, u2} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) _x) (AddHomClass.toFunLike.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddMonoidHomClass.toAddHomClass.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoidHom.addMonoidHomClass.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))))) (f i j h))], DirectedSystem.{u1, u2} ι _inst_2 G (fun (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => G j) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, u2} Int Int (G i) (G j) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) (_inst_3 i) (_inst_3 j) (f i j hij)))
+Case conversion may be inaccurate. Consider using '#align add_comm_group.direct_limit.directed_system AddCommGroup.DirectLimit.directedSystemₓ'. -/
protected theorem directedSystem [h : DirectedSystem G fun i j h => f i j h] :
DirectedSystem G fun i j hij => (f i j hij).toIntLinearMap :=
h
@@ -294,6 +408,12 @@ instance : AddCommGroup (DirectLimit G f) :=
instance : Inhabited (DirectLimit G f) :=
⟨0⟩
+/- warning: add_comm_group.direct_limit.of -> AddCommGroup.DirectLimit.of is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))) (i : ι), LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => _inst_3 i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => _inst_3 i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) (_inst_3 i) (_inst_3 j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => _inst_3 i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) (_inst_3 i) (_inst_3 j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => _inst_3 i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) (_inst_3 i) (_inst_3 j) (f i j H)) x))) a))))))))
+but is expected to have type
+ forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))) (i : ι), LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))
+Case conversion may be inaccurate. Consider using '#align add_comm_group.direct_limit.of AddCommGroup.DirectLimit.ofₓ'. -/
/-- The canonical map from a component to the direct limit. -/
def of (i) : G i →ₗ[ℤ] DirectLimit G f :=
Module.DirectLimit.of ℤ ι G (fun i j hij => (f i j hij).toIntLinearMap) i
@@ -301,17 +421,35 @@ def of (i) : G i →ₗ[ℤ] DirectLimit G f :=
variable {G f}
+/- warning: add_comm_group.direct_limit.of_f -> AddCommGroup.DirectLimit.of_f is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))} {i : ι} {j : ι} (hij : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (x : G i), Eq.{succ (max u1 u2)} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (f i j hij) x)) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)
+but is expected to have type
+ forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))} {i : ι} {j : ι} (hij : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) (x : G i), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (FunLike.coe.{succ u2, succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) a) (AddHomClass.toFunLike.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddMonoidHomClass.toAddHomClass.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoidHom.addMonoidHomClass.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))))) (f i j hij) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j) (FunLike.coe.{succ u2, succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) _x) (AddHomClass.toFunLike.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddMonoidHomClass.toAddHomClass.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoidHom.addMonoidHomClass.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))))) (f i j hij) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)
+Case conversion may be inaccurate. Consider using '#align add_comm_group.direct_limit.of_f AddCommGroup.DirectLimit.of_fₓ'. -/
@[simp]
theorem of_f {i j} (hij) (x) : of G f j (f i j hij x) = of G f i x :=
Module.DirectLimit.of_f
#align add_comm_group.direct_limit.of_f AddCommGroup.DirectLimit.of_f
+/- warning: add_comm_group.direct_limit.induction_on -> AddCommGroup.DirectLimit.induction_on is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))} [_inst_4 : Nonempty.{succ u1} ι] [_inst_5 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] {C : (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> Prop} (z : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f), (forall (i : ι) (x : G i), C (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) -> (C z)
+but is expected to have type
+ forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))} [_inst_4 : Nonempty.{succ u1} ι] [_inst_5 : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.5270 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.5272 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.5270 x._@.Mathlib.Algebra.DirectLimit._hyg.5272)] {C : (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> Prop} (z : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f), (forall (i : ι) (x : G i), C (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) -> (C z)
+Case conversion may be inaccurate. Consider using '#align add_comm_group.direct_limit.induction_on AddCommGroup.DirectLimit.induction_onₓ'. -/
@[elab_as_elim]
protected theorem induction_on [Nonempty ι] [IsDirected ι (· ≤ ·)] {C : DirectLimit G f → Prop}
(z : DirectLimit G f) (ih : ∀ i x, C (of G f i x)) : C z :=
Module.DirectLimit.induction_on z ih
#align add_comm_group.direct_limit.induction_on AddCommGroup.DirectLimit.induction_on
+/- warning: add_comm_group.direct_limit.of.zero_exact -> AddCommGroup.DirectLimit.of.zero_exact is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))} [_inst_4 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] [_inst_5 : DirectedSystem.{u1, u2} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (f i j h))] (i : ι) (x : G i), (Eq.{succ (max u1 u2)} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x) (OfNat.ofNat.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) 0 (OfNat.mk.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) 0 (Zero.zero.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddZeroClass.toHasZero.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))))))))) -> (Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (hij : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Eq.{succ u2} (G j) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (f i j hij) x) (OfNat.ofNat.{u2} (G j) 0 (OfNat.mk.{u2} (G j) 0 (Zero.zero.{u2} (G j) (AddZeroClass.toHasZero.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))))))))
+but is expected to have type
+ forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))} [_inst_4 : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.5359 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.5361 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.5359 x._@.Mathlib.Algebra.DirectLimit._hyg.5361)] [_inst_5 : DirectedSystem.{u1, u2} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) _x) (AddHomClass.toFunLike.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddMonoidHomClass.toAddHomClass.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoidHom.addMonoidHomClass.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))))) (f i j h))] (i : ι) (x : G i), (Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) x) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x) (OfNat.ofNat.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) x) 0 (Zero.toOfNat0.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) x) (NegZeroClass.toZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) x) (SubNegZeroMonoid.toNegZeroClass.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) x) (SubtractionMonoid.toSubNegZeroMonoid.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) x) (SubtractionCommMonoid.toSubtractionMonoid.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) x) (AddCommGroup.toDivisionAddCommMonoid.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) x) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))))))) -> (Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) (fun (hij : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) x) (FunLike.coe.{succ u2, succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) _x) (AddHomClass.toFunLike.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddMonoidHomClass.toAddHomClass.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoidHom.addMonoidHomClass.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))))) (f i j hij) x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) x) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) x) (NegZeroClass.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) x) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) x) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) x) (SubtractionCommMonoid.toSubtractionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) x) (AddCommGroup.toDivisionAddCommMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) x) (_inst_3 j)))))))))))
+Case conversion may be inaccurate. Consider using '#align add_comm_group.direct_limit.of.zero_exact AddCommGroup.DirectLimit.of.zero_exactₓ'. -/
/-- A component that corresponds to zero in the direct limit is already zero in some
bigger module in the directed system. -/
theorem of.zero_exact [IsDirected ι (· ≤ ·)] [DirectedSystem G fun i j h => f i j h] (i x)
@@ -327,6 +465,12 @@ variable (Hg : ∀ i j hij x, g j (f i j hij x) = g i x)
variable (G f)
+/- warning: add_comm_group.direct_limit.lift -> AddCommGroup.DirectLimit.lift is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))) (P : Type.{u3}) [_inst_4 : AddCommGroup.{u3} P] (g : forall (i : ι), AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))), (forall (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (x : G i), Eq.{succ u3} P (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G j) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (g j) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (f i j hij) x)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G i) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (g i) x)) -> (LinearMap.{0, 0, max u1 u2, u3} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => _inst_3 i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => _inst_3 i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) (_inst_3 i) (_inst_3 j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => _inst_3 i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) (_inst_3 i) (_inst_3 j) (f i j H)) x))) a))))))))) (AddCommGroup.toAddCommMonoid.{u3} P _inst_4) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => _inst_3 i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => _inst_3 i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) (_inst_3 i) (_inst_3 j) (f i j H)) x))) a)))))))) (AddCommGroup.intModule.{u3} P _inst_4))
+but is expected to have type
+ forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))) (P : Type.{u3}) [_inst_4 : AddCommGroup.{u3} P] (g : forall (i : ι), AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))), (forall (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) (x : G i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G j) => P) (FunLike.coe.{succ u2, succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) a) (AddHomClass.toFunLike.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddMonoidHomClass.toAddHomClass.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoidHom.addMonoidHomClass.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))))) (f i j hij) x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G j) => P) _x) (AddHomClass.toFunLike.{max u3 u2, u2, u3} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G j) P (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, u3} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) (g j) (FunLike.coe.{succ u2, succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) _x) (AddHomClass.toFunLike.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddMonoidHomClass.toAddHomClass.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoidHom.addMonoidHomClass.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))))) (f i j hij) x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => P) _x) (AddHomClass.toFunLike.{max u3 u2, u2, u3} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G i) P (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, u3} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) (g i) x)) -> (LinearMap.{0, 0, max u2 u1, u3} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.toAddCommMonoid.{u3} P _inst_4) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u3} P _inst_4))
+Case conversion may be inaccurate. Consider using '#align add_comm_group.direct_limit.lift AddCommGroup.DirectLimit.liftₓ'. -/
/-- The universal property of the direct limit: maps from the components to another abelian group
that respect the directed system structure (i.e. make some diagram commute) give rise
to a unique map out of the direct limit. -/
@@ -337,11 +481,23 @@ def lift : DirectLimit G f →ₗ[ℤ] P :=
variable {G f}
+/- warning: add_comm_group.direct_limit.lift_of -> AddCommGroup.DirectLimit.lift_of is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))} (P : Type.{u3}) [_inst_4 : AddCommGroup.{u3} P] (g : forall (i : ι), AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (Hg : forall (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (x : G i), Eq.{succ u3} P (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G j) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (g j) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (f i j hij) x)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G i) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (g i) x)) (i : ι) (x : G i), Eq.{succ u3} P (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (LinearMap.{0, 0, max u1 u2, u3} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) P (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.toAddCommMonoid.{u3} P _inst_4) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (AddCommGroup.intModule.{u3} P _inst_4)) (fun (_x : LinearMap.{0, 0, max u1 u2, u3} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) P (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.toAddCommMonoid.{u3} P _inst_4) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (AddCommGroup.intModule.{u3} P _inst_4)) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) -> P) (LinearMap.hasCoeToFun.{0, 0, max u1 u2, u3} Int Int (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) P Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.toAddCommMonoid.{u3} P _inst_4) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (AddCommGroup.intModule.{u3} P _inst_4) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.lift.{u1, u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f P _inst_4 g Hg) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G i) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (g i) x)
+but is expected to have type
+ forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))} (P : Type.{u3}) [_inst_4 : AddCommGroup.{u3} P] (g : forall (i : ι), AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (Hg : forall (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) (x : G i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G j) => P) (FunLike.coe.{succ u2, succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) a) (AddHomClass.toFunLike.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddMonoidHomClass.toAddHomClass.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoidHom.addMonoidHomClass.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))))) (f i j hij) x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G j) => P) _x) (AddHomClass.toFunLike.{max u3 u2, u2, u3} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G j) P (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, u3} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) (g j) (FunLike.coe.{succ u2, succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) _x) (AddHomClass.toFunLike.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddMonoidHomClass.toAddHomClass.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoidHom.addMonoidHomClass.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))))) (f i j hij) x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => P) _x) (AddHomClass.toFunLike.{max u3 u2, u2, u3} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G i) P (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, u3} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) (g i) x)) (i : ι) (x : G i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), max (succ u1) (succ u2), succ u3} (LinearMap.{0, 0, max u2 u1, u3} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.toAddCommMonoid.{u3} P _inst_4) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u3} P _inst_4)) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (_x : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{0, 0, max u1 u2, u3} Int Int (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.toAddCommMonoid.{u3} P _inst_4) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u3} P _inst_4) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.lift.{u1, u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f P _inst_4 g Hg) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => P) _x) (AddHomClass.toFunLike.{max u3 u2, u2, u3} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G i) P (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, u3} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) (g i) x)
+Case conversion may be inaccurate. Consider using '#align add_comm_group.direct_limit.lift_of AddCommGroup.DirectLimit.lift_ofₓ'. -/
@[simp]
theorem lift_of (i x) : lift G f P g Hg (of G f i x) = g i x :=
Module.DirectLimit.lift_of _ _ _
#align add_comm_group.direct_limit.lift_of AddCommGroup.DirectLimit.lift_of
+/- warning: add_comm_group.direct_limit.lift_unique -> AddCommGroup.DirectLimit.lift_unique is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))} (P : Type.{u3}) [_inst_4 : AddCommGroup.{u3} P] [_inst_5 : Nonempty.{succ u1} ι] [_inst_6 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] (F : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (x : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f), Eq.{succ u3} P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F x) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (LinearMap.{0, 0, max u1 u2, u3} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) P (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.toAddCommMonoid.{u3} P _inst_4) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (AddCommGroup.intModule.{u3} P _inst_4)) (fun (_x : LinearMap.{0, 0, max u1 u2, u3} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) P (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.toAddCommMonoid.{u3} P _inst_4) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (AddCommGroup.intModule.{u3} P _inst_4)) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) -> P) (LinearMap.hasCoeToFun.{0, 0, max u1 u2, u3} Int Int (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) P Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.toAddCommMonoid.{u3} P _inst_4) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => dec_ι a b) a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (AddCommGroup.intModule.{u3} P _inst_4) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.lift.{u1, u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f P _inst_4 (fun (i : ι) => AddMonoidHom.comp.{u2, max u1 u2, u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) (fun (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (x : G i) => Eq.mpr.{0} (Eq.{succ u3} P (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G j) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) ((fun (i : ι) => AddMonoidHom.comp.{u2, max u1 u2, u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) j) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G i) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) ((fun (i : ι) => AddMonoidHom.comp.{u2, max u1 u2, u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) i) x)) True (id_tag Tactic.IdTag.simp (Eq.{1} Prop (Eq.{succ u3} P (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G j) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) ((fun (i : ι) => AddMonoidHom.comp.{u2, max u1 u2, u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) j) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G i) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) ((fun (i : ι) => AddMonoidHom.comp.{u2, max u1 u2, u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) i) x)) True) (Eq.trans.{1} Prop (Eq.{succ u3} P (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G j) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) ((fun (i : ι) => AddMonoidHom.comp.{u2, max u1 u2, u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) j) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G i) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) ((fun (i : ι) => AddMonoidHom.comp.{u2, max u1 u2, u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) i) x)) (Eq.{succ u3} P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x))) True ((fun (a : P) (a_1 : P) (e_1 : Eq.{succ u3} P a a_1) (ᾰ : P) (ᾰ_1 : P) (e_2 : Eq.{succ u3} P ᾰ ᾰ_1) => congr.{succ u3, 1} P Prop (Eq.{succ u3} P a) (Eq.{succ u3} P a_1) ᾰ ᾰ_1 (congr_arg.{succ u3, succ u3} P (P -> Prop) a a_1 (Eq.{succ u3} P) e_1) e_2) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G j) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) ((fun (i : ι) => AddMonoidHom.comp.{u2, max u1 u2, u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) j) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (Eq.trans.{succ u3} ((fun (ᾰ : G j) => P) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G j) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHom.comp.{u2, max u1 u2, u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j))) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x))) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (Eq.trans.{succ u3} ((fun (ᾰ : G j) => P) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G j) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHom.comp.{u2, max u1 u2, u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j))) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j)) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x))) (Eq.trans.{succ u3} ((fun (ᾰ : G j) => P) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G j) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHom.comp.{u2, max u1 u2, u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j))) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) => (G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j))) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j)) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) (congr_fun.{succ u2, succ u3} (G j) (fun (ᾰ : G j) => P) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G j) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G j) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHom.comp.{u2, max u1 u2, u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j)))) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) => (G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j)))) (AddMonoidHom.coe_comp.{u2, max u1 u2, u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j))) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) ((fun (f_1 : (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (f_2 : (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (e_1 : Eq.{max (succ (max u1 u2)) (succ u3)} ((AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) f_1 f_2) (g : (G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (g_1 : (G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (e_2 : Eq.{max (succ u2) (succ (max u1 u2))} ((G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) g g_1) (ᾰ : G j) (ᾰ_1 : G j) (e_3 : Eq.{succ u2} (G j) ᾰ ᾰ_1) => congr.{succ u2, succ u3} (G j) P (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P f_1 g) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P f_2 g_1) ᾰ ᾰ_1 (congr.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ u3)} ((G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) ((G j) -> P) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P f_1) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P f_2) g g_1 (congr_arg.{max (succ (max u1 u2)) (succ u3), max (max (succ u2) (succ (max u1 u2))) (succ u2) (succ u3)} ((AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (((G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) -> (G j) -> P) f_1 f_2 (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P) e_1) e_2) e_3) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (rfl.{max (succ (max u1 u2)) (succ u3)} ((fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) F) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) => (G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j)) (LinearMap.toAddMonoidHom_coe.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j)) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x) (rfl.{succ u2} (G j) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)))) (Function.comp_apply.{succ u2, succ (max u1 u2), succ u3} (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j)) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x))) ((fun [_inst_1 : CoeFun.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P)] (x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (x_1 : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (e_2 : Eq.{max (succ u3) (succ (max u1 u2))} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) x x_1) (ᾰ : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (ᾰ_1 : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (e_3 : Eq.{succ (max u1 u2)} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) ᾰ ᾰ_1) => congr.{succ (max u1 u2), succ u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) _inst_1 x) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) _inst_1 x_1) ᾰ ᾰ_1 (congr_arg.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) ((fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) x) x x_1 (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) _inst_1) e_2) e_3) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F F (rfl.{max (succ u3) (succ (max u1 u2))} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G j) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j) (coeFn.{succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (fun (_x : AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) => (G i) -> (G j)) (AddMonoidHom.hasCoeToFun.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))))) (f i j hij) x)) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x) (AddCommGroup.DirectLimit.of_f.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i j hij x))) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G i) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) ((fun (i : ι) => AddMonoidHom.comp.{u2, max u1 u2, u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) i) x) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (Eq.trans.{succ u3} ((fun (ᾰ : G i) => P) x) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G i) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHom.comp.{u2, max u1 u2, u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) x) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i)) x) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (Eq.trans.{succ u3} ((fun (ᾰ : G i) => P) x) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G i) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHom.comp.{u2, max u1 u2, u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) x) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) x) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i)) x) (congr_fun.{succ u2, succ u3} (G i) (fun (ᾰ : G i) => P) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (G i) -> P) (AddMonoidHom.hasCoeToFun.{u2, u3} (G i) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHom.comp.{u2, max u1 u2, u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i)))) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i)))) (AddMonoidHom.coe_comp.{u2, max u1 u2, u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) x) ((fun (f_1 : (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (f_2 : (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (e_1 : Eq.{max (succ (max u1 u2)) (succ u3)} ((AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) f_1 f_2) (g : (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (g_1 : (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (e_2 : Eq.{max (succ u2) (succ (max u1 u2))} ((G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) g g_1) (ᾰ : G i) (ᾰ_1 : G i) (e_3 : Eq.{succ u2} (G i) ᾰ ᾰ_1) => congr.{succ u2, succ u3} (G i) P (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P f_1 g) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P f_2 g_1) ᾰ ᾰ_1 (congr.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ u3)} ((G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) ((G i) -> P) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P f_1) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P f_2) g g_1 (congr_arg.{max (succ (max u1 u2)) (succ u3), max (max (succ u2) (succ (max u1 u2))) (succ u2) (succ u3)} ((AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (((G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) -> (G i) -> P) f_1 f_2 (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P) e_1) e_2) e_3) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (rfl.{max (succ (max u1 u2)) (succ u3)} ((fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) F) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i)) (LinearMap.toAddMonoidHom_coe.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i)) x x (rfl.{succ u2} (G i) x))) (Function.comp_apply.{succ u2, succ (max u1 u2), succ u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i)) x))) (propext (Eq.{succ u3} P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x))) True (eq_self_iff_true.{succ u3} P (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) => (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.addCommGroup.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) => (G i) -> (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Submodule.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{max u1 u2} (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.hasQuotient.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (Submodule.Quotient.addCommGroup.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a))))))))) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (Submodule.Quotient.module.{0, max u1 u2} Int (DirectSum.{u1, u2} ι G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))) Int.ring (DirectSum.addCommGroup.{u1, u2} ι G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (Submodule.span.{0, max u1 u2} Int (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i))) (setOf.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (fun (a : DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) => Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G i) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i) x) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) (fun (_x : LinearMap.{0, 0, u2, max u1 u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i))) => (G j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i))) (LinearMap.hasCoeToFun.{0, 0, u2, max u1 u2} Int Int (G j) (DirectSum.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) j) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i)) ((fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (DirectSum.module.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (i : ι) => G i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) i)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (DirectSum.lof.{0, u1, u2} Int (Ring.toSemiring.{0} Int Int.ring) ι (fun (a : ι) (b : ι) => dec_ι a b) G (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (fun (i : ι) => AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) j) (coeFn.{succ u2, succ u2} (LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) (fun (_x : LinearMap.{0, 0, u2, u2} Int Int (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring))) (G i) (G j) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j))) => (G i) -> (G j)) (LinearMap.hasCoeToFun.{0, 0, u2, u2} Int Int (G i) (G j) (Ring.toSemiring.{0} Int Int.ring) (Ring.toSemiring.{0} Int Int.ring) (AddCommGroup.toAddCommMonoid.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)) (AddCommGroup.toAddCommMonoid.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)) (AddCommGroup.intModule.{u2} (G i) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i)) (AddCommGroup.intModule.{u2} (G j) ((fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int (Ring.toSemiring.{0} Int Int.ring)))) (AddMonoidHom.toIntLinearMap.{u2, u2} (G i) (G j) ((fun (i : ι) => _inst_3 i) i) ((fun (i : ι) => _inst_3 i) j) (f i j H)) x))) a)))))))) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)))))) trivial)) x)
+but is expected to have type
+ forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), AddCommGroup.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))))} (P : Type.{u3}) [_inst_4 : AddCommGroup.{u3} P] [_inst_5 : Nonempty.{succ u1} ι] [_inst_6 : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.6070 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.6072 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.6070 x._@.Mathlib.Algebra.DirectLimit._hyg.6072)] (F : AddMonoidHom.{max u2 u1, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (x : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) x) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), max (succ u1) (succ u2), succ u3} (AddMonoidHom.{max u2 u1, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (_x : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) _x) (AddHomClass.toFunLike.{max (max u3 u1) u2, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddZeroClass.toAdd.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u1) u2, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) F x) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), max (succ u1) (succ u2), succ u3} (LinearMap.{0, 0, max u2 u1, u3} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.toAddCommMonoid.{u3} P _inst_4) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u3} P _inst_4)) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (_x : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) _x) (LinearMap.instFunLikeLinearMap.{0, 0, max u1 u2, u3} Int Int (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.toAddCommMonoid.{u3} P _inst_4) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u3} P _inst_4) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.lift.{u1, u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f P _inst_4 (fun (i : ι) => AddMonoidHom.comp.{u2, max u1 u2, u3} (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) F (LinearMap.toAddMonoidHom.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i))) (fun (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) (x : G i) => of_eq_true (Eq.{succ u3} P (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddZeroClass.toAdd.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G j) (fun (a : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j) (FunLike.coe.{succ u2, succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) a) (AddHomClass.toFunLike.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddMonoidHomClass.toAddHomClass.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoidHom.addMonoidHomClass.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))))) (f i j hij) x))) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddZeroClass.toAdd.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u2) (succ (max u1 u2)), succ u2, succ (max u1 u2)} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G i) (fun (a : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x))) (Eq.trans.{1} Prop (Eq.{succ u3} P (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddZeroClass.toAdd.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G j) (fun (a : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j) (FunLike.coe.{succ u2, succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) a) (AddHomClass.toFunLike.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddMonoidHomClass.toAddHomClass.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoidHom.addMonoidHomClass.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))))) (f i j hij) x))) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddZeroClass.toAdd.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u2) (succ (max u1 u2)), succ u2, succ (max u1 u2)} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G i) (fun (a : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x))) (Eq.{succ u3} P (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddZeroClass.toAdd.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddZeroClass.toAdd.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u2) (succ (max u1 u2)), succ u2, succ (max u1 u2)} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G i) (fun (a : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x))) True (congrFun.{succ u3, 1} P (fun (a._@.Init.Prelude._hyg.170 : P) => Prop) (Eq.{succ u3} P (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddZeroClass.toAdd.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G j) (fun (a : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j) (FunLike.coe.{succ u2, succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) a) (AddHomClass.toFunLike.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddMonoidHomClass.toAddHomClass.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoidHom.addMonoidHomClass.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))))) (f i j hij) x)))) (Eq.{succ u3} P (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddZeroClass.toAdd.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x))) (congrArg.{succ u3, succ u3} P (P -> Prop) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddZeroClass.toAdd.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G j) (fun (a : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j) (FunLike.coe.{succ u2, succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) a) (AddHomClass.toFunLike.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddMonoidHomClass.toAddHomClass.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoidHom.addMonoidHomClass.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))))) (f i j hij) x))) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddZeroClass.toAdd.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (Eq.{succ u3} P) (congrArg.{succ (max u2 u1), succ u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G j) (fun (a : G j) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G j) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G j) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G j) (_inst_3 j)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G j) (_inst_3 j)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f j) (FunLike.coe.{succ u2, succ u2, succ u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G i) => G j) a) (AddHomClass.toFunLike.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddZeroClass.toAdd.{u2} (G i) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i)))))) (AddZeroClass.toAdd.{u2} (G j) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (AddMonoidHomClass.toAddHomClass.{u2, u2, u2} (AddMonoidHom.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))) (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j))))) (AddMonoidHom.addMonoidHomClass.{u2, u2} (G i) (G j) (AddMonoid.toAddZeroClass.{u2} (G i) (SubNegMonoid.toAddMonoid.{u2} (G i) (AddGroup.toSubNegMonoid.{u2} (G i) (AddCommGroup.toAddGroup.{u2} (G i) (_inst_3 i))))) (AddMonoid.toAddZeroClass.{u2} (G j) (SubNegMonoid.toAddMonoid.{u2} (G j) (AddGroup.toSubNegMonoid.{u2} (G j) (AddCommGroup.toAddGroup.{u2} (G j) (_inst_3 j)))))))) (f i j hij) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddZeroClass.toAdd.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) F) (AddCommGroup.DirectLimit.of_f.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i j hij x))) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddZeroClass.toAdd.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u2) (succ (max u1 u2)), succ u2, succ (max u1 u2)} (LinearMap.{0, 0, u2, max u1 u2} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G i) (fun (a : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x))) (eq_self.{succ u3} P (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddZeroClass.toAdd.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (AddZeroClass.toAdd.{u3} P (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) P (AddMonoid.toAddZeroClass.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (SubNegMonoid.toAddMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddGroup.toSubNegMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddGroup.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (AddMonoid.toAddZeroClass.{u3} P (SubNegMonoid.toAddMonoid.{u3} P (AddGroup.toSubNegMonoid.{u3} P (AddCommGroup.toAddGroup.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (LinearMap.{0, 0, u2, max u2 u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f))) (G i) (fun (a : G i) => AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (LinearMap.instFunLikeLinearMap.{0, 0, u2, max u1 u2} Int Int (G i) (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} (G i) (_inst_3 i)) (AddCommGroup.toAddCommMonoid.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (AddCommGroup.intModule.{u2} (G i) (_inst_3 i)) (AddCommGroup.intModule.{max u1 u2} (AddCommGroup.DirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f) (AddCommGroup.DirectLimit.instAddCommGroupDirectLimit.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddCommGroup.DirectLimit.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)))))) x)
+Case conversion may be inaccurate. Consider using '#align add_comm_group.direct_limit.lift_unique AddCommGroup.DirectLimit.lift_uniqueₓ'. -/
theorem lift_unique [Nonempty ι] [IsDirected ι (· ≤ ·)] (F : DirectLimit G f →+ P) (x) :
F x = lift G f P (fun i => F.comp (of G f i).toAddMonoidHom) (fun i j hij x => by simp) x :=
DirectLimit.induction_on x fun i x => by simp
@@ -361,6 +517,12 @@ variable (f : ∀ i j, i ≤ j → G i → G j)
open FreeCommRing
+/- warning: ring.direct_limit -> Ring.DirectLimit is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), CommRing.{u2} (G i)], (forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (G i) -> (G j)) -> Type.{max u1 u2}
+but is expected to have type
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), CommRing.{u2} (G i)], (forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (G i) -> (G j)) -> Type.{max u1 u2}
+Case conversion may be inaccurate. Consider using '#align ring.direct_limit Ring.DirectLimitₓ'. -/
/-- The direct limit of a directed system is the rings glued together along the maps. -/
def DirectLimit : Type max v w :=
FreeCommRing (Σi, G i) ⧸
@@ -383,6 +545,12 @@ instance : Ring (DirectLimit G f) :=
instance : Inhabited (DirectLimit G f) :=
⟨0⟩
+/- warning: ring.direct_limit.of -> Ring.DirectLimit.of is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (G i) -> (G j)) (i : ι), RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))
+but is expected to have type
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (G i) -> (G j)) (i : ι), RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))
+Case conversion may be inaccurate. Consider using '#align ring.direct_limit.of Ring.DirectLimit.ofₓ'. -/
/-- The canonical map from a component to the direct limit. -/
def of (i) : G i →+* DirectLimit G f :=
RingHom.mk'
@@ -395,11 +563,23 @@ def of (i) : G i →+* DirectLimit G f :=
variable {G f}
+/- warning: ring.direct_limit.of_f -> Ring.DirectLimit.of_f is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (G i) -> (G j)} {i : ι} {j : ι} (hij : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (x : G i), Eq.{succ (max u1 u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) => (G j) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j) (f i j hij x)) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)
+but is expected to have type
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (G i) -> (G j)} {i : ι} {j : ι} (hij : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) (x : G i), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G j) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (f i j hij x)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G j) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j) (f i j hij x)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)
+Case conversion may be inaccurate. Consider using '#align ring.direct_limit.of_f Ring.DirectLimit.of_fₓ'. -/
@[simp]
theorem of_f {i j} (hij) (x) : of G f j (f i j hij x) = of G f i x :=
Ideal.Quotient.eq.2 <| subset_span <| Or.inl ⟨i, j, hij, x, rfl⟩
#align ring.direct_limit.of_f Ring.DirectLimit.of_f
+/- warning: ring.direct_limit.exists_of -> Ring.DirectLimit.exists_of is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (G i) -> (G j)} [_inst_4 : Nonempty.{succ u1} ι] [_inst_5 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] (z : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f), Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x) z))
+but is expected to have type
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (G i) -> (G j)} [_inst_4 : Nonempty.{succ u1} ι] [_inst_5 : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.7021 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.7023 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.7021 x._@.Mathlib.Algebra.DirectLimit._hyg.7023)] (z : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f), Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) x) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x) z))
+Case conversion may be inaccurate. Consider using '#align ring.direct_limit.exists_of Ring.DirectLimit.exists_ofₓ'. -/
/-- Every element of the direct limit corresponds to some element in
some component of the directed system. -/
theorem exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)] (z : DirectLimit G f) :
@@ -427,6 +607,12 @@ open Polynomial
variable {f' : ∀ i j, i ≤ j → G i →+* G j}
+/- warning: ring.direct_limit.polynomial.exists_of -> Ring.DirectLimit.Polynomial.exists_of is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] {f' : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))} [_inst_4 : Nonempty.{succ u1} ι] [_inst_5 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] (q : Polynomial.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))))), Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (Polynomial.{u2} (G i) (Ring.toSemiring.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (fun (p : Polynomial.{u2} (G i) (Ring.toSemiring.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) => Eq.{succ (max u1 u2)} (Polynomial.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))))) (Polynomial.map.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.toSemiring.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i))) (Ring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i) p) q))
+but is expected to have type
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] {f' : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))} [_inst_4 : Nonempty.{succ u1} ι] [_inst_5 : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.7600 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.7602 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.7600 x._@.Mathlib.Algebra.DirectLimit._hyg.7602)] (q : Polynomial.{max u2 u1} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => G j) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => G j) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' i j h)))))), Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (Polynomial.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (fun (p : Polynomial.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) => Eq.{max (succ u1) (succ u2)} (Polynomial.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => G j) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => G j) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' i j h)))))) (Polynomial.map.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => G j) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' i j h))) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => G j) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' i j h))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => G j) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' i j h)) i) p) q))
+Case conversion may be inaccurate. Consider using '#align ring.direct_limit.polynomial.exists_of Ring.DirectLimit.Polynomial.exists_ofₓ'. -/
theorem Polynomial.exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)]
(q : Polynomial (DirectLimit G fun i j h => f' i j h)) :
∃ i p, Polynomial.map (of G (fun i j h => f' i j h) i) p = q :=
@@ -447,6 +633,12 @@ theorem Polynomial.exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)]
end
+/- warning: ring.direct_limit.induction_on -> Ring.DirectLimit.induction_on is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (G i) -> (G j)} [_inst_4 : Nonempty.{succ u1} ι] [_inst_5 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] {C : (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> Prop} (z : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f), (forall (i : ι) (x : G i), C (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) -> (C z)
+but is expected to have type
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (G i) -> (G j)} [_inst_4 : Nonempty.{succ u1} ι] [_inst_5 : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.8039 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.8041 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.8039 x._@.Mathlib.Algebra.DirectLimit._hyg.8041)] {C : (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> Prop} (z : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f), (forall (i : ι) (x : G i), C (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) -> (C z)
+Case conversion may be inaccurate. Consider using '#align ring.direct_limit.induction_on Ring.DirectLimit.induction_onₓ'. -/
@[elab_as_elim]
theorem induction_on [Nonempty ι] [IsDirected ι (· ≤ ·)] {C : DirectLimit G f → Prop}
(z : DirectLimit G f) (ih : ∀ i x, C (of G f i x)) : C z :=
@@ -464,6 +656,12 @@ variable [DirectedSystem G fun i j h => f' i j h]
variable (G f)
+/- warning: ring.direct_limit.of.zero_exact_aux2 -> Ring.DirectLimit.of.zero_exact_aux2 is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] (f' : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))) [_inst_4 : DirectedSystem.{u1, u2} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))] {x : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))} {s : Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))} {t : Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))}, (FreeCommRing.IsSupported.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) x s) -> (forall {j : ι} {k : ι} (hj : forall (z : Sigma.{u1, u2} ι (fun (i : ι) => G i)), (Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) z s) -> (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) z) j)) (hk : forall (z : Sigma.{u1, u2} ι (fun (i : ι) => G i)), (Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) z t) -> (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) z) k)) (hjk : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) j k), (HasSubset.Subset.{max u1 u2} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasSubset.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s t) -> (Eq.{succ u2} (G k) (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G j) (G k) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))) (NonAssocRing.toNonAssocSemiring.{u2} (G k) (Ring.toNonAssocRing.{u2} (G k) (CommRing.toRing.{u2} (G k) (_inst_3 k))))) (fun (_x : RingHom.{u2, u2} (G j) (G k) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))) (NonAssocRing.toNonAssocSemiring.{u2} (G k) (Ring.toNonAssocRing.{u2} (G k) (CommRing.toRing.{u2} (G k) (_inst_3 k))))) => (G j) -> (G k)) (RingHom.hasCoeToFun.{u2, u2} (G j) (G k) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))) (NonAssocRing.toNonAssocSemiring.{u2} (G k) (Ring.toNonAssocRing.{u2} (G k) (CommRing.toRing.{u2} (G k) (_inst_3 k))))) (f' j k hjk) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (G j) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (G j) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) -> (G j)) (RingHom.hasCoeToFun.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (G j) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (coeFn.{max 1 (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} (Equiv.{max (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} ((coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) -> (G j)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (G j) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} ((coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) -> (G j)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (G j) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))) => ((coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) -> (G j)) -> (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (G j) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} ((coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) -> (G j)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (G j) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))) (FreeCommRing.lift.{max u1 u2, u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) (G j) (_inst_3 j)) (fun (ix : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Ring.toNonAssocRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Ring.toNonAssocRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Ring.toNonAssocRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)) j (hj ((fun (a : Type.{max u1 u2}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ (max u1 u2), max (succ u1) (succ u2)} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (HasLiftT.mk.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (CoeTCₓ.coe.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (coeBase.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (coeSubtype.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s))))) ix) (Subtype.property.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)))))) (fun (_x : RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)))))) => (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) -> (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))) (RingHom.hasCoeToFun.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)))))) (FreeCommRing.restriction.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s (fun (a : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Classical.propDecidable ((fun (_x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) _x s) a))) x))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (G k) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t))))) (NonAssocRing.toNonAssocSemiring.{u2} (G k) (Ring.toNonAssocRing.{u2} (G k) (CommRing.toRing.{u2} (G k) (_inst_3 k))))) (fun (_x : RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (G k) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t))))) (NonAssocRing.toNonAssocSemiring.{u2} (G k) (Ring.toNonAssocRing.{u2} (G k) (CommRing.toRing.{u2} (G k) (_inst_3 k))))) => (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) -> (G k)) (RingHom.hasCoeToFun.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (G k) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t))))) (NonAssocRing.toNonAssocSemiring.{u2} (G k) (Ring.toNonAssocRing.{u2} (G k) (CommRing.toRing.{u2} (G k) (_inst_3 k))))) (coeFn.{max 1 (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} (Equiv.{max (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} ((coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t) -> (G k)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (G k) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t))))) (NonAssocRing.toNonAssocSemiring.{u2} (G k) (Ring.toNonAssocRing.{u2} (G k) (CommRing.toRing.{u2} (G k) (_inst_3 k)))))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} ((coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t) -> (G k)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (G k) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t))))) (NonAssocRing.toNonAssocSemiring.{u2} (G k) (Ring.toNonAssocRing.{u2} (G k) (CommRing.toRing.{u2} (G k) (_inst_3 k)))))) => ((coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t) -> (G k)) -> (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (G k) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t))))) (NonAssocRing.toNonAssocSemiring.{u2} (G k) (Ring.toNonAssocRing.{u2} (G k) (CommRing.toRing.{u2} (G k) (_inst_3 k)))))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} ((coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t) -> (G k)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (G k) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t))))) (NonAssocRing.toNonAssocSemiring.{u2} (G k) (Ring.toNonAssocRing.{u2} (G k) (CommRing.toRing.{u2} (G k) (_inst_3 k)))))) (FreeCommRing.lift.{max u1 u2, u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t) (G k) (_inst_3 k)) (fun (ix : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (NonAssocRing.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Ring.toNonAssocRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (NonAssocRing.toNonAssocSemiring.{u2} (G k) (Ring.toNonAssocRing.{u2} (G k) (CommRing.toRing.{u2} (G k) (_inst_3 k))))) (fun (_x : RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (NonAssocRing.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Ring.toNonAssocRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (NonAssocRing.toNonAssocSemiring.{u2} (G k) (Ring.toNonAssocRing.{u2} (G k) (CommRing.toRing.{u2} (G k) (_inst_3 k))))) => (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) -> (G k)) (RingHom.hasCoeToFun.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (NonAssocRing.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Ring.toNonAssocRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (NonAssocRing.toNonAssocSemiring.{u2} (G k) (Ring.toNonAssocRing.{u2} (G k) (CommRing.toRing.{u2} (G k) (_inst_3 k))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)) k (hk ((fun (a : Type.{max u1 u2}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ (max u1 u2), max (succ u1) (succ u2)} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t) (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (HasLiftT.mk.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t) (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (CoeTCₓ.coe.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t) (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (coeBase.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t) (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (coeSubtype.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t))))) ix) (Subtype.property.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)))))) (fun (_x : RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)))))) => (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) -> (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t))) (RingHom.hasCoeToFun.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) t)))))) (FreeCommRing.restriction.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t (fun (a : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Classical.propDecidable ((fun (_x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) _x t) a))) x))))
+but is expected to have type
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] (f' : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) [_inst_4 : DirectedSystem.{u1, u2} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => G j) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G i) (G j) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' i j h))] {x : FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => G i))} {s : Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))} {t : Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))}, (FreeCommRing.IsSupported.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) x s) -> (forall {j : ι} {k : ι} (hj : forall (z : Sigma.{u1, u2} ι (fun (i : ι) => G i)), (Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) z s) -> (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) z) j)) (hk : forall (z : Sigma.{u1, u2} ι (fun (i : ι) => G i)), (Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) z t) -> (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) z) k)) (hjk : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) j k), (HasSubset.Subset.{max u1 u2} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instHasSubsetSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s t) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G j) => G k) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), succ u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (fun (a : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)) j (hj (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (fun (a : FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) => G j) a) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (fun (a : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)) j (hj (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (fun (a : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)) j (hj (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (fun (a : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)) j (hj (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (FunLike.coe.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (Equiv.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} ((Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) ((Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) (fun (a : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) a) (Equiv.instFunLikeEquiv.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} ((Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (FreeCommRing.lift.{max u1 u2, u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) (G j) (_inst_3 j)) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (fun (a : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)) j (hj (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) a) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (RingHom.instRingHomClassRingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))))))) (FreeCommRing.restriction.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s (fun (a : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Classical.propDecidable ((fun (x._@.Mathlib.RingTheory.FreeCommRing._hyg.1466 : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x._@.Mathlib.RingTheory.FreeCommRing._hyg.1466 s) a))) x))) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G j) (G k) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G j) => G k) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G j) (G k) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G j) (G k) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G k) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G j) (G k) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G j) (G k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G k) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G j) (G k) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G j) (G k) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G j) (G k) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))))) (f' j k hjk) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), succ u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (fun (a : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)) j (hj (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (fun (_x : FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) => G j) _x) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (fun (a : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)) j (hj (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (fun (a : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)) j (hj (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (fun (a : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => G j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)) j (hj (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (FunLike.coe.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (Equiv.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} ((Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) ((Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) (fun (_x : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} ((Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) -> (G j)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (G j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (FreeCommRing.lift.{max u1 u2, u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) (G j) (_inst_3 j)) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (fun (_x : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) => G j) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)) j (hj (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (_x : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) _x) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))) (RingHom.instRingHomClassRingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s))))))))) (FreeCommRing.restriction.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s (fun (a : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Classical.propDecidable ((fun (_x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) _x s) a))) x))) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), succ u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) -> (G k)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (G k) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (fun (a : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) => G k) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G k) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G k) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)) k (hk (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (fun (_x : FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) => G k) _x) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) -> (G k)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (G k) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (fun (a : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) => G k) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G k) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G k) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)) k (hk (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (G k) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G k) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) -> (G k)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (G k) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (fun (a : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) => G k) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G k) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G k) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)) k (hk (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (G k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G k) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) -> (G k)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (G k) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (fun (a : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) => G k) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G k) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G k) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)) k (hk (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (G k) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))) (RingHom.instRingHomClassRingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (G k) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))))) (FunLike.coe.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (Equiv.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} ((Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) -> (G k)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (G k) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))) ((Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) -> (G k)) (fun (_x : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) -> (G k)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) -> (G k)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (G k) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} ((Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) -> (G k)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (G k) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))) (FreeCommRing.lift.{max u1 u2, u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) (G k) (_inst_3 k)) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (fun (_x : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) => G k) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (NonUnitalNonAssocSemiring.toMul.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (G k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G k) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G k) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k))))) (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))) (RingHom.instRingHomClassRingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (G k) (Semiring.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommSemiring.toSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (CommRing.toCommSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))))) (Semiring.toNonAssocSemiring.{u2} (G k) (CommSemiring.toSemiring.{u2} (G k) (CommRing.toCommSemiring.{u2} (G k) (_inst_3 k)))))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)) k (hk (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x t) ix)))) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (_x : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) _x) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t))))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t))))) (RingHom.instRingHomClassRingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t))))))))) (FreeCommRing.restriction.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) t (fun (a : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Classical.propDecidable ((fun (_x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) _x t) a))) x))))
+Case conversion may be inaccurate. Consider using '#align ring.direct_limit.of.zero_exact_aux2 Ring.DirectLimit.of.zero_exact_aux2ₓ'. -/
theorem of.zero_exact_aux2 {x : FreeCommRing (Σi, G i)} {s t} (hxs : IsSupported x s) {j k}
(hj : ∀ z : Σi, G i, z ∈ s → z.1 ≤ j) (hk : ∀ z : Σi, G i, z ∈ t → z.1 ≤ k) (hjk : j ≤ k)
(hst : s ⊆ t) :
@@ -495,6 +693,12 @@ theorem of.zero_exact_aux2 {x : FreeCommRing (Σi, G i)} {s t} (hxs : IsSupporte
variable {G f f'}
+/- warning: ring.direct_limit.of.zero_exact_aux -> Ring.DirectLimit.of.zero_exact_aux is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] {f' : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))} [_inst_4 : DirectedSystem.{u1, u2} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))] [_inst_5 : Nonempty.{succ u1} ι] [_inst_6 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] {x : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))}, (Eq.{succ (max u1 u2)} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Ideal.hasQuotient.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Ideal.hasQuotient.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Ideal.hasQuotient.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))) (Ring.toNonAssocRing.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Ideal.hasQuotient.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))) (CommRing.toRing.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Ideal.hasQuotient.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))) (Ideal.Quotient.commRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))))))) (fun (_x : RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Ideal.hasQuotient.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Ideal.hasQuotient.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))) (Ring.toNonAssocRing.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Ideal.hasQuotient.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))) (CommRing.toRing.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Ideal.hasQuotient.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))) (Ideal.Quotient.commRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))))))) => (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) -> (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Ideal.hasQuotient.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a))))))))))) (RingHom.hasCoeToFun.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Ideal.hasQuotient.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Ideal.hasQuotient.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))) (Ring.toNonAssocRing.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Ideal.hasQuotient.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))) (CommRing.toRing.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (Ideal.hasQuotient.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))) (Ideal.Quotient.commRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))))))) (Ideal.Quotient.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (H : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Exists.{succ u2} (G i) (fun (x : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (OfNat.ofNat.{u2} (G i) 1 (OfNat.mk.{u2} (G i) 1 (One.one.{u2} (G i) (AddMonoidWithOne.toOne.{u2} (G i) (AddGroupWithOne.toAddMonoidWithOne.{u2} (G i) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (G i) (Ring.toAddCommGroupWithOne.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (OfNat.mk.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) 1 (One.one.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddMonoidWithOne.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HAdd.hAdd.{u2, u2, u2} (G i) (G i) (G i) (instHAdd.{u2} (G i) (Distrib.toHasAdd.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (G i) (fun (x : G i) => Exists.{succ u2} (G i) (fun (y : G i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (SubNegMonoid.toHasSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroup.toSubNegMonoid.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddGroupWithOne.toAddGroup.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toAddCommGroupWithOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i (HMul.hMul.{u2, u2, u2} (G i) (G i) (G i) (instHMul.{u2} (G i) (Distrib.toHasMul.{u2} (G i) (Ring.toDistrib.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Distrib.toHasMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => G i) i y)))) a)))))))))) x) (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) 0 (OfNat.mk.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) 0 (Zero.zero.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (MulZeroClass.toHasZero.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)))))))))))) -> (Exists.{succ u1} ι (fun (j : ι) => Exists.{succ (max u1 u2)} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (fun (s : Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) => Exists.{0} (forall (k : Sigma.{u1, u2} ι (fun (i : ι) => G i)), (Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) k s) -> (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) k) j)) (fun (H : forall (k : Sigma.{u1, u2} ι (fun (i : ι) => G i)), (Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) k s) -> (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) k) j)) => And (FreeCommRing.IsSupported.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) x s) (Eq.{succ u2} (G j) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (G j) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (G j) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) -> (G j)) (RingHom.hasCoeToFun.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (G j) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (coeFn.{max 1 (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} (Equiv.{max (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} ((coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) -> (G j)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (G j) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} ((coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) -> (G j)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (G j) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))) => ((coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) -> (G j)) -> (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (G j) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u2), max (succ (max u1 u2)) (succ u2)} ((coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) -> (G j)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (G j) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))) (FreeCommRing.lift.{max u1 u2, u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) (G j) (_inst_3 j)) (fun (ix : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Ring.toNonAssocRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Ring.toNonAssocRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Ring.toNonAssocRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (CommRing.toRing.{u2} (G (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)) j (H ((fun (a : Type.{max u1 u2}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ (max u1 u2), max (succ u1) (succ u2)} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (HasLiftT.mk.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (CoeTCₓ.coe.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (coeBase.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s) (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (coeSubtype.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s))))) ix) (Subtype.property.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => G i) (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) x s) ix)))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)))))) (fun (_x : RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)))))) => (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) -> (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s))) (RingHom.hasCoeToFun.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)))))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)) (FreeCommRing.instCommRing.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) s)))))) (FreeCommRing.restriction.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) s (fun (a : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Classical.propDecidable ((fun (_x : Sigma.{u1, u2} ι (fun (i : ι) => G i)) => Membership.Mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) (Set.hasMem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => G i))) _x s) a))) x)) (OfNat.ofNat.{u2} (G j) 0 (OfNat.mk.{u2} (G j) 0 (Zero.zero.{u2} (G j) (MulZeroClass.toHasZero.{u2} (G j) (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} (G j) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (G j) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))))))))))))
+but is expected to have type
+ forall {ι : Type.{u1}} [_inst_2 : DecidableEq.{succ u1} ι] [G : Preorder.{u1} ι] {_inst_3 : ι -> Type.{u2}} [f' : forall (i : ι), CommRing.{u2} (_inst_3 i)] {_inst_4 : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) -> (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))} [_inst_5 : DirectedSystem.{u1, u2} ι G _inst_3 (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))] [_inst_6 : Nonempty.{succ u1} ι] [x : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.9013 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.9015 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι G) x._@.Mathlib.Algebra.DirectLimit._hyg.9013 x._@.Mathlib.Algebra.DirectLimit._hyg.9015)] {H : FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))}, (Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) H) (FunLike.coe.{succ (max u1 u2), succ (max u1 u2), succ (max u1 u2)} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommSemiring.toSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommRing.toCommSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Ideal.Quotient.commRing.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))))))) (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) a) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommSemiring.toSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommRing.toCommSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Ideal.Quotient.commRing.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))))))) (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Semiring.toNonAssocSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommSemiring.toSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommRing.toCommSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Ideal.Quotient.commRing.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a))))))))))))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommSemiring.toSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommRing.toCommSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Ideal.Quotient.commRing.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))))))) (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Semiring.toNonAssocSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommSemiring.toSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommRing.toCommSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Ideal.Quotient.commRing.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommSemiring.toSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommRing.toCommSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Ideal.Quotient.commRing.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))))))) (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommSemiring.toSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommRing.toCommSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Ideal.Quotient.commRing.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a))))))))))))) (RingHom.instRingHomClassRingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommSemiring.toSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (CommRing.toCommSemiring.{max u1 u2} (HasQuotient.Quotient.{max u1 u2, max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) (Ideal.Quotient.commRing.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a))))))))))))))))) (Ideal.Quotient.mk.{max u1 u2} (FreeCommRing.{max u2 u1} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ideal.span.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))) (setOf.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) (fun (H : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Eq.{succ (max u1 u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) j ((fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i j H x))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x))) a))))) (Or (Exists.{succ u1} ι (fun (i : ι) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (OfNat.ofNat.{u2} (_inst_3 i) 1 (One.toOfNat1.{u2} (_inst_3 i) (Semiring.toOne.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) (OfNat.ofNat.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) 1 (One.toOfNat1.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toOne.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))))) a)) (Or (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HAdd.hAdd.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHAdd.{u2} (_inst_3 i) (Distrib.toAdd.{u2} (_inst_3 i) (NonUnitalNonAssocSemiring.toDistrib.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))))) x y))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Distrib.toAdd.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))) (Exists.{succ u1} ι (fun (i : ι) => Exists.{succ u2} (_inst_3 i) (fun (x : _inst_3 i) => Exists.{succ u2} (_inst_3 i) (fun (y : _inst_3 i) => Eq.{max (succ u1) (succ u2)} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toSub.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i (HMul.hMul.{u2, u2, u2} (_inst_3 i) (_inst_3 i) (_inst_3 i) (instHMul.{u2} (_inst_3 i) (NonUnitalNonAssocRing.toMul.{u2} (_inst_3 i) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (_inst_3 i) (Ring.toNonAssocRing.{u2} (_inst_3 i) (CommRing.toRing.{u2} (_inst_3 i) ((fun (i : ι) => f' i) i)))))) x y))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (instHMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonUnitalNonAssocRing.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Ring.toNonAssocRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toRing.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i x)) (FreeCommRing.of.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Sigma.mk.{u1, u2} ι (fun (i : ι) => _inst_3 i) i y)))) a)))))))))) H) (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) 0 (Zero.toOfNat0.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.zero.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)))))) -> (Exists.{succ u1} ι (fun (j : ι) => Exists.{succ (max u1 u2)} (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (s : Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => Exists.{0} (forall (k : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)), (Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) k s) -> (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) k) j)) (fun (H_1 : forall (k : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)), (Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) k s) -> (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) k) j)) => And (FreeCommRing.IsSupported.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) H s) (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) => _inst_3 j) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) a) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))) (RingHom.instRingHomClassRingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))))))) (FreeCommRing.restriction.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s (fun (a : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Classical.propDecidable ((fun (x._@.Mathlib.RingTheory.FreeCommRing._hyg.1466 : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x._@.Mathlib.RingTheory.FreeCommRing._hyg.1466 s) a))) H)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), succ u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) -> (_inst_3 j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (_inst_3 j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (fun (a : _inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)) j (H_1 (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (fun (a : FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) => _inst_3 j) a) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) -> (_inst_3 j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (_inst_3 j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (fun (a : _inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)) j (H_1 (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) -> (_inst_3 j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (_inst_3 j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (fun (a : _inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)) j (H_1 (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) -> (_inst_3 j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (_inst_3 j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (fun (a : _inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)) j (H_1 (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (_inst_3 j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (_inst_3 j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (FunLike.coe.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (Equiv.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} ((Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) -> (_inst_3 j)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (_inst_3 j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) ((Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) -> (_inst_3 j)) (fun (a : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) -> (_inst_3 j)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) -> (_inst_3 j)) => RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (_inst_3 j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) a) (Equiv.instFunLikeEquiv.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} ((Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) -> (_inst_3 j)) (RingHom.{max u1 u2, u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (_inst_3 j) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (FreeCommRing.lift.{max u1 u2, u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) (_inst_3 j) (f' j)) (fun (ix : Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (fun (a : _inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommSemiring.toSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (CommRing.toCommSemiring.{u2} (_inst_3 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (f' (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 (Sigma.fst.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)) j (H_1 (Subtype.val.{succ (max u1 u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix) (Subtype.property.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix))) (Sigma.snd.{u1, u2} ι (fun (i : ι) => _inst_3 i) (Subtype.val.{max (succ u1) (succ u2)} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (fun (x : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x s) ix)))) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (fun (a : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) => FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) a) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)))))) (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))) (RingHom.instRingHomClassRingHom.{max u1 u2, max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (FreeCommRing.instCommRing.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)))))) (Semiring.toNonAssocSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommSemiring.toSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (CommRing.toCommSemiring.{max u1 u2} (FreeCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s)) (FreeCommRing.instCommRing.{max u1 u2} (Set.Elem.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s))))))))) (FreeCommRing.restriction.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) s (fun (a : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Classical.propDecidable ((fun (x._@.Mathlib.RingTheory.FreeCommRing._hyg.1466 : Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) => Membership.mem.{max u1 u2, max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i)) (Set.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) (Set.instMembershipSet.{max u1 u2} (Sigma.{u1, u2} ι (fun (i : ι) => _inst_3 i))) x._@.Mathlib.RingTheory.FreeCommRing._hyg.1466 s) a))) H)) (OfNat.ofNat.{u2} (_inst_3 j) 0 (Zero.toOfNat0.{u2} (_inst_3 j) (CommMonoidWithZero.toZero.{u2} (_inst_3 j) (CommSemiring.toCommMonoidWithZero.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))))))
+Case conversion may be inaccurate. Consider using '#align ring.direct_limit.of.zero_exact_aux Ring.DirectLimit.of.zero_exact_auxₓ'. -/
theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCommRing (Σi, G i)}
(H : Ideal.Quotient.mk _ x = (0 : DirectLimit G fun i j h => f' i j h)) :
∃ j s,
@@ -592,6 +796,12 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
(f' j k hjk).map_zero, MulZeroClass.mul_zero]
#align ring.direct_limit.of.zero_exact_aux Ring.DirectLimit.of.zero_exact_aux
+/- warning: ring.direct_limit.of.zero_exact -> Ring.DirectLimit.of.zero_exact is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] {f' : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))} [_inst_4 : DirectedSystem.{u1, u2} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))] [_inst_5 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] {i : ι} {x : G i}, (Eq.{succ (max u1 u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)))))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)))))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)))) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i) x) (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) 0 (OfNat.mk.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) 0 (Zero.zero.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (MulZeroClass.toHasZero.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)))))))))))) -> (Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (fun (hij : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => Eq.{succ u2} (G j) (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j hij) x) (OfNat.ofNat.{u2} (G j) 0 (OfNat.mk.{u2} (G j) 0 (Zero.zero.{u2} (G j) (MulZeroClass.toHasZero.{u2} (G j) (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} (G j) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (G j) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))))))))))
+but is expected to have type
+ forall {ι : Type.{u1}} [_inst_2 : DecidableEq.{succ u1} ι] [G : Preorder.{u1} ι] {_inst_3 : ι -> Type.{u2}} [f' : forall (i : ι), CommRing.{u2} (_inst_3 i)] {_inst_4 : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) -> (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))} [_inst_5 : DirectedSystem.{u1, u2} ι G _inst_3 (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))] [i : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.10740 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.10742 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι G) x._@.Mathlib.Algebra.DirectLimit._hyg.10740 x._@.Mathlib.Algebra.DirectLimit._hyg.10742)] {x : ι} {hix : _inst_3 x}, (Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 x) => Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) hix) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (_inst_3 x) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))))))) (_inst_3 x) (fun (a : _inst_3 x) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 x) => Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) a) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (_inst_3 x) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))))))) (_inst_3 x) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 x) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)))))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (_inst_3 x) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))))))) (_inst_3 x) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 x) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (_inst_3 x) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))))))) (_inst_3 x) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)))))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (_inst_3 x) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)))))))))) (Ring.DirectLimit.of.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) x) hix) (OfNat.ofNat.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 x) => Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) hix) 0 (Zero.toOfNat0.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 x) => Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) hix) (Ring.DirectLimit.zero.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)))))) -> (Exists.{succ u1} ι (fun (j : ι) => Exists.{0} (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) x j) (fun (hij : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) x j) => Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 x) => _inst_3 j) hix) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 x) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 x) (fun (a : _inst_3 x) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 x) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 x) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 x) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 x) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 x) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 x) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 x) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 x) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 x) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 x) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 x) (CommSemiring.toSemiring.{u2} (_inst_3 x) (CommRing.toCommSemiring.{u2} (_inst_3 x) (f' x)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 x j hij) hix) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 x) => _inst_3 j) hix) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 x) => _inst_3 j) hix) (CommMonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 x) => _inst_3 j) hix) (CommSemiring.toCommMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 x) => _inst_3 j) hix) (CommRing.toCommSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 x) => _inst_3 j) hix) (f' j)))))))))
+Case conversion may be inaccurate. Consider using '#align ring.direct_limit.of.zero_exact Ring.DirectLimit.of.zero_exactₓ'. -/
/-- A component that corresponds to zero in the direct limit is already zero in some
bigger module in the directed system. -/
theorem of.zero_exact [IsDirected ι (· ≤ ·)] {i x} (hix : of G (fun i j h => f' i j h) i x = 0) :
@@ -606,6 +816,12 @@ end OfZeroExact
variable (f' : ∀ i j, i ≤ j → G i →+* G j)
+/- warning: ring.direct_limit.of_injective -> Ring.DirectLimit.of_injective is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] (f' : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))))) [_inst_4 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] [_inst_5 : DirectedSystem.{u1, u2} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))], (forall (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j), Function.Injective.{succ u2, succ u2} (G i) (G j) (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j hij))) -> (forall (i : ι), Function.Injective.{succ u2, succ (max u1 u2)} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)))))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)))))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)))) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h))) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j))))) (f' i j h)) i)))
+but is expected to have type
+ forall {ι : Type.{u1}} [_inst_2 : DecidableEq.{succ u1} ι] [G : Preorder.{u1} ι] {_inst_3 : ι -> Type.{u2}} [f' : forall (i : ι), CommRing.{u2} (_inst_3 i)] (_inst_4 : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) -> (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) [_inst_5 : IsDirected.{u1} ι (fun (i : ι) (j : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j)] [hf : DirectedSystem.{u1, u2} ι G _inst_3 (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))], (forall (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j), Function.Injective.{succ u2, succ u2} (_inst_3 i) (_inst_3 j) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j hij))) -> (forall (i : ι), Function.Injective.{succ u2, max (succ u1) (succ u2)} (_inst_3 i) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (_inst_3 i) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) a) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (_inst_3 i) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))))))) (_inst_3 i) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)))))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (_inst_3 i) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))))))) (_inst_3 i) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (_inst_3 i) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))))))) (_inst_3 i) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)))))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (_inst_3 i) (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h))) (Ring.DirectLimit.commRing.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)))))))))) (Ring.DirectLimit.of.{u1, u2} ι G _inst_3 (fun (i : ι) => f' i) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (CommSemiring.toSemiring.{u2} (_inst_3 i) (CommRing.toCommSemiring.{u2} (_inst_3 i) (f' i)))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (CommSemiring.toSemiring.{u2} (_inst_3 j) (CommRing.toCommSemiring.{u2} (_inst_3 j) (f' j)))))))) (_inst_4 i j h)) i)))
+Case conversion may be inaccurate. Consider using '#align ring.direct_limit.of_injective Ring.DirectLimit.of_injectiveₓ'. -/
/-- If the maps in the directed system are injective, then the canonical maps
from the components to the direct limits are injective. -/
theorem of_injective [IsDirected ι (· ≤ ·)] [DirectedSystem G fun i j h => f' i j h]
@@ -636,6 +852,12 @@ open FreeCommRing
variable (G f)
+/- warning: ring.direct_limit.lift -> Ring.DirectLimit.lift is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (G i) -> (G j)) (P : Type.{u3}) [_inst_4 : CommRing.{u3} P] (g : forall (i : ι), RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))), (forall (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (x : G i), Eq.{succ u3} P (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G j) -> P) (RingHom.hasCoeToFun.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (g j) (f i j hij x)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G i) -> P) (RingHom.hasCoeToFun.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (g i) x)) -> (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))))
+but is expected to have type
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (G i) -> (G j)) (P : Type.{u3}) [_inst_4 : CommRing.{u3} P] (g : forall (i : ι), RingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))), (forall (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) (x : G i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G j) => P) (f i j hij x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (RingHom.{u2, u3} (G j) P (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G j) => P) _x) (MulHomClass.toFunLike.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G j) P (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G j) P (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G j) P (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G j) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G j) P (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G j) P (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{u2, u3} (G j) P (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) (g j) (f i j hij x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (RingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => P) _x) (MulHomClass.toFunLike.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G i) P (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G i) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) (g i) x)) -> (RingHom.{max u2 u1, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))
+Case conversion may be inaccurate. Consider using '#align ring.direct_limit.lift Ring.DirectLimit.liftₓ'. -/
/-- The universal property of the direct limit: maps from the components to another ring
that respect the directed system structure (i.e. make some diagram commute) give rise
to a unique map out of the direct limit.
@@ -659,11 +881,23 @@ variable {G f}
omit Hg
+/- warning: ring.direct_limit.lift_of -> Ring.DirectLimit.lift_of is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (G i) -> (G j)} (P : Type.{u3}) [_inst_4 : CommRing.{u3} P] (g : forall (i : ι), RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (Hg : forall (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (x : G i), Eq.{succ u3} P (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G j) -> P) (RingHom.hasCoeToFun.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) (_inst_3 j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (g j) (f i j hij x)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G i) -> P) (RingHom.hasCoeToFun.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (g i) x)) (i : ι) (x : G i), Eq.{succ u3} P (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (Ring.DirectLimit.lift.{u1, u2, u3} ι _inst_2 G (fun (i : ι) => _inst_3 i) f P _inst_4 g Hg) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G i) -> P) (RingHom.hasCoeToFun.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) (_inst_3 i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (g i) x)
+but is expected to have type
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (G i) -> (G j)} (P : Type.{u3}) [_inst_4 : CommRing.{u3} P] (g : forall (i : ι), RingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Hg : forall (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) (x : G i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G j) => P) (f i j hij x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (RingHom.{u2, u3} (G j) P (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G j) (fun (_x : G j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G j) => P) _x) (MulHomClass.toFunLike.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G j) P (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G j) P (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G j) P (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G j) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G j) P (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G j) P (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{u2, u3} (G j) P (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) (g j) (f i j hij x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (RingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => P) _x) (MulHomClass.toFunLike.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G i) P (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G i) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) (g i) x)) (i : ι) (x : G i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), max (succ u1) (succ u2), succ u3} (RingHom.{max u2 u1, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (_x : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) _x) (MulHomClass.toFunLike.{max (max u3 u1) u2, max u1 u2, u3} (RingHom.{max u2 u1, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u3 u1) u2, max u1 u2, u3} (RingHom.{max u2 u1, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u3 u1) u2, max u1 u2, u3} (RingHom.{max u2 u1, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) (Ring.DirectLimit.lift.{u1, u2, u3} ι _inst_2 G (fun (i : ι) => _inst_3 i) f P _inst_4 g Hg) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (RingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G i) (fun (_x : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => P) _x) (MulHomClass.toFunLike.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G i) P (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G i) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u2, u3} (RingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{u2, u3} (G i) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) (g i) x)
+Case conversion may be inaccurate. Consider using '#align ring.direct_limit.lift_of Ring.DirectLimit.lift_ofₓ'. -/
@[simp]
theorem lift_of (i x) : lift G f P g Hg (of G f i x) = g i x :=
FreeCommRing.lift_of _ _
#align ring.direct_limit.lift_of Ring.DirectLimit.lift_of
+/- warning: ring.direct_limit.lift_unique -> Ring.DirectLimit.lift_unique is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (G i) -> (G j)} (P : Type.{u3}) [_inst_4 : CommRing.{u3} P] [_inst_5 : Nonempty.{succ u1} ι] [_inst_6 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] (F : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (x : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f), Eq.{succ u3} P (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F x) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (Ring.DirectLimit.lift.{u1, u2, u3} ι _inst_2 G (fun (i : ι) => _inst_3 i) f P _inst_4 (fun (i : ι) => RingHom.comp.{u2, max u1 u2, u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i)) (fun (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) (x : G i) => Eq.mpr.{0} (Eq.{succ u3} P (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G j) -> P) (RingHom.hasCoeToFun.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) ((fun (i : ι) => RingHom.comp.{u2, max u1 u2, u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i)) j) (f i j hij x)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G i) -> P) (RingHom.hasCoeToFun.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) ((fun (i : ι) => RingHom.comp.{u2, max u1 u2, u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i)) i) x)) True (id_tag Tactic.IdTag.simp (Eq.{1} Prop (Eq.{succ u3} P (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G j) -> P) (RingHom.hasCoeToFun.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) ((fun (i : ι) => RingHom.comp.{u2, max u1 u2, u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i)) j) (f i j hij x)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G i) -> P) (RingHom.hasCoeToFun.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) ((fun (i : ι) => RingHom.comp.{u2, max u1 u2, u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i)) i) x)) True) (Eq.trans.{1} Prop (Eq.{succ u3} P (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G j) -> P) (RingHom.hasCoeToFun.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) ((fun (i : ι) => RingHom.comp.{u2, max u1 u2, u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i)) j) (f i j hij x)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G i) -> P) (RingHom.hasCoeToFun.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) ((fun (i : ι) => RingHom.comp.{u2, max u1 u2, u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i)) i) x)) (Eq.{succ u3} P (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x))) True ((fun (a : P) (a_1 : P) (e_1 : Eq.{succ u3} P a a_1) (ᾰ : P) (ᾰ_1 : P) (e_2 : Eq.{succ u3} P ᾰ ᾰ_1) => congr.{succ u3, 1} P Prop (Eq.{succ u3} P a) (Eq.{succ u3} P a_1) ᾰ ᾰ_1 (congr_arg.{succ u3, succ u3} P (P -> Prop) a a_1 (Eq.{succ u3} P) e_1) e_2) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G j) -> P) (RingHom.hasCoeToFun.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) ((fun (i : ι) => RingHom.comp.{u2, max u1 u2, u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i)) j) (f i j hij x)) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (Eq.trans.{succ u3} ((fun (ᾰ : G j) => P) (f i j hij x)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G j) -> P) (RingHom.hasCoeToFun.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (RingHom.comp.{u2, max u1 u2, u3} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j)) (f i j hij x)) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) => (G j) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j) (f i j hij x))) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (Eq.trans.{succ u3} ((fun (ᾰ : G j) => P) (f i j hij x)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G j) -> P) (RingHom.hasCoeToFun.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (RingHom.comp.{u2, max u1 u2, u3} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j)) (f i j hij x)) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) => (G j) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j)) (f i j hij x)) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) => (G j) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j) (f i j hij x))) (congr_fun.{succ u2, succ u3} (G j) (fun (ᾰ : G j) => P) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G j) -> P) (RingHom.hasCoeToFun.{u2, u3} (G j) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (RingHom.comp.{u2, max u1 u2, u3} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j))) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) => (G j) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j))) (RingHom.coe_comp.{u2, max u1 u2, u3} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j)) (f i j hij x)) (Function.comp_apply.{succ u2, succ (max u1 u2), succ u3} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) => (G j) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j)) (f i j hij x))) ((fun [_inst_1 : CoeFun.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P)] (x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (x_1 : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (e_2 : Eq.{max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) x x_1) (ᾰ : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (ᾰ_1 : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (e_3 : Eq.{succ (max u1 u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) ᾰ ᾰ_1) => congr.{succ (max u1 u2), succ u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) _inst_1 x) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) _inst_1 x_1) ᾰ ᾰ_1 (congr_arg.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) ((fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) x) x x_1 (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) _inst_1) e_2) e_3) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F F (rfl.{max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) => (G j) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (CommRing.toRing.{u2} (G j) ((fun (i : ι) => _inst_3 i) j)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j) (f i j hij x)) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x) (Ring.DirectLimit.of_f.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i j hij x))) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G i) -> P) (RingHom.hasCoeToFun.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) ((fun (i : ι) => RingHom.comp.{u2, max u1 u2, u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i)) i) x) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (Eq.trans.{succ u3} ((fun (ᾰ : G i) => P) x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G i) -> P) (RingHom.hasCoeToFun.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (RingHom.comp.{u2, max u1 u2, u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i)) x) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i)) x) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (congr_fun.{succ u2, succ u3} (G i) (fun (ᾰ : G i) => P) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (G i) -> P) (RingHom.hasCoeToFun.{u2, u3} (G i) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (RingHom.comp.{u2, max u1 u2, u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i))) (Function.comp.{succ u2, succ (max u1 u2), succ u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i))) (RingHom.coe_comp.{u2, max u1 u2, u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i)) x) (Function.comp_apply.{succ u2, succ (max u1 u2), succ u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F) (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i)) x))) (propext (Eq.{succ u3} P (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x))) True (eq_self_iff_true.{succ u3} P (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) (fun (_x : RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) => (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) -> P) (RingHom.hasCoeToFun.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))) (NonAssocRing.toNonAssocSemiring.{u3} P (Ring.toNonAssocRing.{u3} P (CommRing.toRing.{u3} P _inst_4)))) F (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (fun (_x : RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) => (G i) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)) (RingHom.hasCoeToFun.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (CommRing.toRing.{u2} (G i) ((fun (i : ι) => _inst_3 i) i)))) (NonAssocRing.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) f)))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)))))) trivial)) x)
+but is expected to have type
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] {G : ι -> Type.{u2}} [_inst_3 : forall (i : ι), CommRing.{u2} (G i)] {f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (G i) -> (G j)} (P : Type.{u3}) [_inst_4 : CommRing.{u3} P] [_inst_5 : Nonempty.{succ u1} ι] [_inst_6 : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.12263 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.12265 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.12263 x._@.Mathlib.Algebra.DirectLimit._hyg.12265)] (F : RingHom.{max u2 u1, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (x : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) x) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), max (succ u1) (succ u2), succ u3} (RingHom.{max u2 u1, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (_x : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) _x) (MulHomClass.toFunLike.{max (max u3 u1) u2, max u1 u2, u3} (RingHom.{max u2 u1, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u3 u1) u2, max u1 u2, u3} (RingHom.{max u2 u1, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u3 u1) u2, max u1 u2, u3} (RingHom.{max u2 u1, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) F x) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), max (succ u1) (succ u2), succ u3} (RingHom.{max u2 u1, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (_x : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) _x) (MulHomClass.toFunLike.{max (max u3 u1) u2, max u1 u2, u3} (RingHom.{max u2 u1, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u3 u1) u2, max u1 u2, u3} (RingHom.{max u2 u1, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u3 u1) u2, max u1 u2, u3} (RingHom.{max u2 u1, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) (Ring.DirectLimit.lift.{u1, u2, u3} ι _inst_2 G (fun (i : ι) => _inst_3 i) f P _inst_4 (fun (i : ι) => RingHom.comp.{u2, max u1 u2, u3} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) F (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i)) (fun (i : ι) (j : ι) (hij : LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) (x : G i) => of_eq_true (Eq.{succ u3} P (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (MulHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (fun (a : G j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G j) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j) (f i j hij x))) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (MulHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u2) (succ (max u1 u2)), succ u2, succ (max u1 u2)} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (fun (a : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x))) (Eq.trans.{1} Prop (Eq.{succ u3} P (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (MulHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (fun (a : G j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G j) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j) (f i j hij x))) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (MulHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u2) (succ (max u1 u2)), succ u2, succ (max u1 u2)} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (fun (a : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x))) (Eq.{succ u3} P (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (MulHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (MulHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u2) (succ (max u1 u2)), succ u2, succ (max u1 u2)} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (fun (a : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x))) True (congrFun.{succ u3, 1} P (fun (a._@.Init.Prelude._hyg.170 : P) => Prop) (Eq.{succ u3} P (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (MulHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (fun (a : G j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G j) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j) (f i j hij x)))) (Eq.{succ u3} P (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (MulHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x))) (congrArg.{succ u3, succ u3} P (P -> Prop) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (MulHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (fun (a : G j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G j) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j) (f i j hij x))) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (MulHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)) (Eq.{succ u3} P) (congrArg.{succ (max u1 u2), succ u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (fun (a : G j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G j) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G j) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G j) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G j) (CommSemiring.toSemiring.{u2} (G j) (CommRing.toCommSemiring.{u2} (G j) (_inst_3 j)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f j) (f i j hij x)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (fun (a : G i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) a) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (MulHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) F) (Ring.DirectLimit.of_f.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i j hij x))) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (MulHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u2) (succ (max u1 u2)), succ u2, succ (max u1 u2)} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (fun (a : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x))) (eq_self.{succ u3} P (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (fun (a : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) => P) (MulHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalNonAssocSemiring.toMul.{u3} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} P (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4)))) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))) (RingHom.instRingHomClassRingHom.{max u1 u2, u3} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) P (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (Semiring.toNonAssocSemiring.{u3} P (CommSemiring.toSemiring.{u3} P (CommRing.toCommSemiring.{u3} P _inst_4))))))) F (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (fun (a : G i) => Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonUnitalNonAssocSemiring.toMul.{u2} (G i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (G i) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, max u1 u2} (RingHom.{u2, max u2 u1} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f))))) (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))) (RingHom.instRingHomClassRingHom.{u2, max u1 u2} (G i) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Semiring.toNonAssocSemiring.{u2} (G i) (CommSemiring.toSemiring.{u2} (G i) (CommRing.toCommSemiring.{u2} (G i) (_inst_3 i)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f)))))))) (Ring.DirectLimit.of.{u1, u2} ι _inst_2 G (fun (i : ι) => _inst_3 i) f i) x)))))) x)
+Case conversion may be inaccurate. Consider using '#align ring.direct_limit.lift_unique Ring.DirectLimit.lift_uniqueₓ'. -/
theorem lift_unique [Nonempty ι] [IsDirected ι (· ≤ ·)] (F : DirectLimit G f →+* P) (x) :
F x = lift G f P (fun i => F.comp <| of G f i) (fun i j hij x => by simp) x :=
DirectLimit.induction_on x fun i x => by simp
@@ -685,6 +919,12 @@ variable (f' : ∀ i j, i ≤ j → G i →+* G j)
namespace DirectLimit
+/- warning: field.direct_limit.nontrivial -> Field.DirectLimit.nontrivial is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : Nonempty.{succ u1} ι] [_inst_4 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] [_inst_5 : forall (i : ι), Field.{u2} (G i)] (f' : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (DivisionRing.toRing.{u2} (G i) (Field.toDivisionRing.{u2} (G i) (_inst_5 i))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (DivisionRing.toRing.{u2} (G j) (Field.toDivisionRing.{u2} (G j) (_inst_5 j))))))) [_inst_6 : DirectedSystem.{u1, u2} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (DivisionRing.toRing.{u2} (G i) (Field.toDivisionRing.{u2} (G i) (_inst_5 i))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (DivisionRing.toRing.{u2} (G j) (Field.toDivisionRing.{u2} (G j) (_inst_5 j)))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (DivisionRing.toRing.{u2} (G i) (Field.toDivisionRing.{u2} (G i) (_inst_5 i))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (DivisionRing.toRing.{u2} (G j) (Field.toDivisionRing.{u2} (G j) (_inst_5 j)))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (DivisionRing.toRing.{u2} (G i) (Field.toDivisionRing.{u2} (G i) (_inst_5 i))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (DivisionRing.toRing.{u2} (G j) (Field.toDivisionRing.{u2} (G j) (_inst_5 j)))))) (f' i j h))], Nontrivial.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (DivisionRing.toRing.{u2} (G i) (Field.toDivisionRing.{u2} (G i) (_inst_5 i))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (DivisionRing.toRing.{u2} (G j) (Field.toDivisionRing.{u2} (G j) (_inst_5 j)))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (DivisionRing.toRing.{u2} (G i) (Field.toDivisionRing.{u2} (G i) (_inst_5 i))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (DivisionRing.toRing.{u2} (G j) (Field.toDivisionRing.{u2} (G j) (_inst_5 j)))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (DivisionRing.toRing.{u2} (G i) (Field.toDivisionRing.{u2} (G i) (_inst_5 i))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (DivisionRing.toRing.{u2} (G j) (Field.toDivisionRing.{u2} (G j) (_inst_5 j)))))) (f' i j h)))
+but is expected to have type
+ forall {ι : Type.{u1}} [_inst_2 : DecidableEq.{succ u1} ι] [G : Preorder.{u1} ι] (_inst_3 : ι -> Type.{u2}) [_inst_4 : Nonempty.{succ u1} ι] [_inst_5 : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.12543 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.12545 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι G) x._@.Mathlib.Algebra.DirectLimit._hyg.12543 x._@.Mathlib.Algebra.DirectLimit._hyg.12545)] [f' : forall (i : ι), Field.{u2} (_inst_3 i)] (_inst_6 : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) -> (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j))))))) [inst._@.Mathlib.Algebra.DirectLimit._hyg.12596 : DirectedSystem.{u1, u2} ι G _inst_3 (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j))))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j))))))))) (_inst_6 i j h))], Nontrivial.{max u2 u1} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => Field.toCommRing.{u2} (_inst_3 i) (f' i)) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j))))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j))))))))) (_inst_6 i j h)))
+Case conversion may be inaccurate. Consider using '#align field.direct_limit.nontrivial Field.DirectLimit.nontrivialₓ'. -/
instance nontrivial [DirectedSystem G fun i j h => f' i j h] :
Nontrivial (Ring.DirectLimit G fun i j h => f' i j h) :=
⟨⟨0, 1,
@@ -697,6 +937,12 @@ instance nontrivial [DirectedSystem G fun i j h => f' i j h] :
exact one_ne_zero hf⟩⟩
#align field.direct_limit.nontrivial Field.DirectLimit.nontrivial
+/- warning: field.direct_limit.exists_inv -> Field.DirectLimit.exists_inv is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : Nonempty.{succ u1} ι] [_inst_4 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] [_inst_5 : forall (i : ι), Field.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (G i) -> (G j)) {p : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f}, (Ne.{succ (max u1 u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) p (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 0 (OfNat.mk.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 0 (Zero.zero.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (MulZeroClass.toHasZero.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)))))))))) -> (Exists.{succ (max u1 u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (fun (y : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) => Eq.{succ (max u1 u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (instHMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Distrib.toHasMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.toDistrib.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)))) p y) (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 1 (OfNat.mk.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 1 (One.one.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (AddMonoidWithOne.toOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.toAddCommGroupWithOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f))))))))))
+but is expected to have type
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : Nonempty.{succ u1} ι] [_inst_4 : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.12791 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.12793 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.12791 x._@.Mathlib.Algebra.DirectLimit._hyg.12793)] [_inst_5 : forall (i : ι), Field.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (G i) -> (G j)) {p : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f}, (Ne.{max (succ u1) (succ u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) p (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 0 (Zero.toOfNat0.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.zero.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)))) -> (Exists.{max (succ u1) (succ u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (fun (y : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) => Eq.{max (succ u1) (succ u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (instHMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonUnitalNonAssocRing.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f))))) p y) (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 1 (One.toOfNat1.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Semiring.toOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f))))))))
+Case conversion may be inaccurate. Consider using '#align field.direct_limit.exists_inv Field.DirectLimit.exists_invₓ'. -/
theorem exists_inv {p : Ring.DirectLimit G f} : p ≠ 0 → ∃ y, p * y = 1 :=
Ring.DirectLimit.induction_on p fun i x H =>
⟨Ring.DirectLimit.of G f i x⁻¹, by
@@ -709,19 +955,43 @@ section
open Classical
+/- warning: field.direct_limit.inv -> Field.DirectLimit.inv is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : Nonempty.{succ u1} ι] [_inst_4 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] [_inst_5 : forall (i : ι), Field.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (G i) -> (G j)), (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)
+but is expected to have type
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : Nonempty.{succ u1} ι] [_inst_4 : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.13011 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.13013 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.13011 x._@.Mathlib.Algebra.DirectLimit._hyg.13013)] [_inst_5 : forall (i : ι), Field.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (G i) -> (G j)), (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) -> (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)
+Case conversion may be inaccurate. Consider using '#align field.direct_limit.inv Field.DirectLimit.invₓ'. -/
/-- Noncomputable multiplicative inverse in a direct limit of fields. -/
noncomputable def inv (p : Ring.DirectLimit G f) : Ring.DirectLimit G f :=
if H : p = 0 then 0 else Classical.choose (DirectLimit.exists_inv G f H)
#align field.direct_limit.inv Field.DirectLimit.inv
+/- warning: field.direct_limit.mul_inv_cancel -> Field.DirectLimit.mul_inv_cancel is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : Nonempty.{succ u1} ι] [_inst_4 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] [_inst_5 : forall (i : ι), Field.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (G i) -> (G j)) {p : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f}, (Ne.{succ (max u1 u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) p (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 0 (OfNat.mk.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 0 (Zero.zero.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (MulZeroClass.toHasZero.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)))))))))) -> (Eq.{succ (max u1 u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (instHMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Distrib.toHasMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.toDistrib.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)))) p (Field.DirectLimit.inv.{u1, u2} ι _inst_2 G _inst_3 _inst_4 (fun (i : ι) => _inst_5 i) f p)) (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 1 (OfNat.mk.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 1 (One.one.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (AddMonoidWithOne.toOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.toAddCommGroupWithOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)))))))))
+but is expected to have type
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : Nonempty.{succ u1} ι] [_inst_4 : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.13123 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.13125 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.13123 x._@.Mathlib.Algebra.DirectLimit._hyg.13125)] [_inst_5 : forall (i : ι), Field.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (G i) -> (G j)) {p : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f}, (Ne.{max (succ u1) (succ u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) p (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 0 (Zero.toOfNat0.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.zero.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)))) -> (Eq.{max (succ u1) (succ u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (instHMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonUnitalNonAssocRing.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f))))) p (Field.DirectLimit.inv.{u1, u2} ι _inst_2 G _inst_3 _inst_4 (fun (i : ι) => _inst_5 i) f p)) (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 1 (One.toOfNat1.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Semiring.toOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)))))))
+Case conversion may be inaccurate. Consider using '#align field.direct_limit.mul_inv_cancel Field.DirectLimit.mul_inv_cancelₓ'. -/
protected theorem mul_inv_cancel {p : Ring.DirectLimit G f} (hp : p ≠ 0) : p * inv G f p = 1 := by
rw [inv, dif_neg hp, Classical.choose_spec (direct_limit.exists_inv G f hp)]
#align field.direct_limit.mul_inv_cancel Field.DirectLimit.mul_inv_cancel
+/- warning: field.direct_limit.inv_mul_cancel -> Field.DirectLimit.inv_mul_cancel is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : Nonempty.{succ u1} ι] [_inst_4 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] [_inst_5 : forall (i : ι), Field.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (G i) -> (G j)) {p : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f}, (Ne.{succ (max u1 u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) p (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 0 (OfNat.mk.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 0 (Zero.zero.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (MulZeroClass.toHasZero.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)))))))))) -> (Eq.{succ (max u1 u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (instHMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Distrib.toHasMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.toDistrib.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)))) (Field.DirectLimit.inv.{u1, u2} ι _inst_2 G _inst_3 _inst_4 (fun (i : ι) => _inst_5 i) f p) p) (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 1 (OfNat.mk.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 1 (One.one.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (AddMonoidWithOne.toOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (AddGroupWithOne.toAddMonoidWithOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.toAddCommGroupWithOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)))))))))
+but is expected to have type
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : Nonempty.{succ u1} ι] [_inst_4 : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.13256 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.13258 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) x._@.Mathlib.Algebra.DirectLimit._hyg.13256 x._@.Mathlib.Algebra.DirectLimit._hyg.13258)] [_inst_5 : forall (i : ι), Field.{u2} (G i)] (f : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι _inst_2) i j) -> (G i) -> (G j)) {p : Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f}, (Ne.{max (succ u1) (succ u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) p (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 0 (Zero.toOfNat0.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.zero.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)))) -> (Eq.{max (succ u1) (succ u2)} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (instHMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonUnitalNonAssocRing.toMul.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (NonAssocRing.toNonUnitalNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.toNonAssocRing.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.ring.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f))))) (Field.DirectLimit.inv.{u1, u2} ι _inst_2 G _inst_3 _inst_4 (fun (i : ι) => _inst_5 i) f p) p) (OfNat.ofNat.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) 1 (One.toOfNat1.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Semiring.toOne.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (CommSemiring.toSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (CommRing.toCommSemiring.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f) (Ring.DirectLimit.commRing.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) f)))))))
+Case conversion may be inaccurate. Consider using '#align field.direct_limit.inv_mul_cancel Field.DirectLimit.inv_mul_cancelₓ'. -/
protected theorem inv_mul_cancel {p : Ring.DirectLimit G f} (hp : p ≠ 0) : inv G f p * p = 1 := by
rw [_root_.mul_comm, direct_limit.mul_inv_cancel G f hp]
#align field.direct_limit.inv_mul_cancel Field.DirectLimit.inv_mul_cancel
+/- warning: field.direct_limit.field -> Field.DirectLimit.field is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_2 : Preorder.{u1} ι] (G : ι -> Type.{u2}) [_inst_3 : Nonempty.{succ u1} ι] [_inst_4 : IsDirected.{u1} ι (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2))] [_inst_5 : forall (i : ι), Field.{u2} (G i)] (f' : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) -> (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (DivisionRing.toRing.{u2} (G i) (Field.toDivisionRing.{u2} (G i) (_inst_5 i))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (DivisionRing.toRing.{u2} (G j) (Field.toDivisionRing.{u2} (G j) (_inst_5 j))))))) [_inst_6 : DirectedSystem.{u1, u2} ι _inst_2 G (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (DivisionRing.toRing.{u2} (G i) (Field.toDivisionRing.{u2} (G i) (_inst_5 i))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (DivisionRing.toRing.{u2} (G j) (Field.toDivisionRing.{u2} (G j) (_inst_5 j)))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (DivisionRing.toRing.{u2} (G i) (Field.toDivisionRing.{u2} (G i) (_inst_5 i))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (DivisionRing.toRing.{u2} (G j) (Field.toDivisionRing.{u2} (G j) (_inst_5 j)))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (DivisionRing.toRing.{u2} (G i) (Field.toDivisionRing.{u2} (G i) (_inst_5 i))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (DivisionRing.toRing.{u2} (G j) (Field.toDivisionRing.{u2} (G j) (_inst_5 j)))))) (f' i j h))], Field.{max u1 u2} (Ring.DirectLimit.{u1, u2} ι _inst_2 G (fun (i : ι) => Field.toCommRing.{u2} (G i) (_inst_5 i)) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toHasLe.{u1} ι _inst_2) i j) => coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (DivisionRing.toRing.{u2} (G i) (Field.toDivisionRing.{u2} (G i) (_inst_5 i))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (DivisionRing.toRing.{u2} (G j) (Field.toDivisionRing.{u2} (G j) (_inst_5 j)))))) (fun (_x : RingHom.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (DivisionRing.toRing.{u2} (G i) (Field.toDivisionRing.{u2} (G i) (_inst_5 i))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (DivisionRing.toRing.{u2} (G j) (Field.toDivisionRing.{u2} (G j) (_inst_5 j)))))) => (G i) -> (G j)) (RingHom.hasCoeToFun.{u2, u2} (G i) (G j) (NonAssocRing.toNonAssocSemiring.{u2} (G i) (Ring.toNonAssocRing.{u2} (G i) (DivisionRing.toRing.{u2} (G i) (Field.toDivisionRing.{u2} (G i) (_inst_5 i))))) (NonAssocRing.toNonAssocSemiring.{u2} (G j) (Ring.toNonAssocRing.{u2} (G j) (DivisionRing.toRing.{u2} (G j) (Field.toDivisionRing.{u2} (G j) (_inst_5 j)))))) (f' i j h)))
+but is expected to have type
+ forall {ι : Type.{u1}} [_inst_2 : DecidableEq.{succ u1} ι] [G : Preorder.{u1} ι] (_inst_3 : ι -> Type.{u2}) [_inst_4 : Nonempty.{succ u1} ι] [_inst_5 : IsDirected.{u1} ι (fun (x._@.Mathlib.Algebra.DirectLimit._hyg.13389 : ι) (x._@.Mathlib.Algebra.DirectLimit._hyg.13391 : ι) => LE.le.{u1} ι (Preorder.toLE.{u1} ι G) x._@.Mathlib.Algebra.DirectLimit._hyg.13389 x._@.Mathlib.Algebra.DirectLimit._hyg.13391)] [f' : forall (i : ι), Field.{u2} (_inst_3 i)] (_inst_6 : forall (i : ι) (j : ι), (LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) -> (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j))))))) [inst._@.Mathlib.Algebra.DirectLimit._hyg.13442 : DirectedSystem.{u1, u2} ι G _inst_3 (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j))))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j))))))))) (_inst_6 i j h))], Field.{max u2 u1} (Ring.DirectLimit.{u1, u2} ι G _inst_3 (fun (i : ι) => Field.toCommRing.{u2} (_inst_3 i) (f' i)) (fun (i : ι) (j : ι) (h : LE.le.{u1} ι (Preorder.toLE.{u1} ι G) i j) => FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (fun (a : _inst_3 i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : _inst_3 i) => _inst_3 j) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (_inst_3 j) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))))) (NonUnitalNonAssocSemiring.toMul.{u2} (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (_inst_3 j) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 i) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j)))))) (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j))))) (RingHom.instRingHomClassRingHom.{u2, u2} (_inst_3 i) (_inst_3 j) (Semiring.toNonAssocSemiring.{u2} (_inst_3 i) (DivisionSemiring.toSemiring.{u2} (_inst_3 i) (Semifield.toDivisionSemiring.{u2} (_inst_3 i) (Field.toSemifield.{u2} (_inst_3 i) (f' i))))) (Semiring.toNonAssocSemiring.{u2} (_inst_3 j) (DivisionSemiring.toSemiring.{u2} (_inst_3 j) (Semifield.toDivisionSemiring.{u2} (_inst_3 j) (Field.toSemifield.{u2} (_inst_3 j) (f' j))))))))) (_inst_6 i j h)))
+Case conversion may be inaccurate. Consider using '#align field.direct_limit.field Field.DirectLimit.fieldₓ'. -/
/-- Noncomputable field structure on the direct limit of fields.
See note [reducible non-instances]. -/
@[reducible]
mathlib commit https://github.com/leanprover-community/mathlib/commit/738054fa93d43512da144ec45ce799d18fd44248
@@ -4,14 +4,14 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kenny Lau, Chris Hughes
! This file was ported from Lean 3 source module algebra.direct_limit
-! leanprover-community/mathlib commit e7f0ddbf65bd7181a85edb74b64bdc35ba4bdc74
+! leanprover-community/mathlib commit f0c8bf9245297a541f468be517f1bde6195105e9
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
import Mathbin.Data.Finset.Order
import Mathbin.Algebra.DirectSum.Module
import Mathbin.RingTheory.FreeCommRing
-import Mathbin.RingTheory.Ideal.QuotientOperations
+import Mathbin.RingTheory.Ideal.Quotient
/-!
# Direct limit of modules, abelian groups, rings, and fields.
mathlib commit https://github.com/leanprover-community/mathlib/commit/09079525fd01b3dda35e96adaa08d2f943e1648c
@@ -47,8 +47,8 @@ variable [dec_ι : DecidableEq ι] [Preorder ι]
variable (G : ι → Type w)
-/- ./././Mathport/Syntax/Translate/Command.lean:388:30: infer kinds are unsupported in Lean 4: #[`map_self] [] -/
-/- ./././Mathport/Syntax/Translate/Command.lean:388:30: infer kinds are unsupported in Lean 4: #[`map_map] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`map_self] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`map_map] [] -/
/-- A directed system is a functor from a category (directed poset) to another category. -/
class DirectedSystem (f : ∀ i j, i ≤ j → G i → G j) : Prop where
map_self : ∀ i x h, f i i h x = x
mathlib commit https://github.com/leanprover-community/mathlib/commit/3180fab693e2cee3bff62675571264cb8778b212
@@ -589,7 +589,7 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
_⟩
rw [(restriction _).map_mul, (FreeCommRing.lift _).map_mul, ←
of.zero_exact_aux2 G f' hyt hj this hjk (Set.subset_union_right (↑s) t), iht,
- (f' j k hjk).map_zero, mul_zero]
+ (f' j k hjk).map_zero, MulZeroClass.mul_zero]
#align ring.direct_limit.of.zero_exact_aux Ring.DirectLimit.of.zero_exact_aux
/-- A component that corresponds to zero in the direct limit is already zero in some
mathlib commit https://github.com/leanprover-community/mathlib/commit/38f16f960f5006c6c0c2bac7b0aba5273188f4e5
@@ -433,7 +433,7 @@ theorem Polynomial.exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)]
Polynomial.induction_on q
(fun z =>
let ⟨i, x, h⟩ := exists_of z
- ⟨i, c x, by rw [map_C, h]⟩)
+ ⟨i, C x, by rw [map_C, h]⟩)
(fun q₁ q₂ ⟨i₁, p₁, ih₁⟩ ⟨i₂, p₂, ih₂⟩ =>
let ⟨i, h1, h2⟩ := exists_ge_ge i₁ i₂
⟨i, p₁.map (f' i₁ i h1) + p₂.map (f' i₂ i h2),
@@ -442,7 +442,7 @@ theorem Polynomial.exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)]
congr 2 <;> ext x <;> simp_rw [RingHom.comp_apply, of_f]⟩)
fun n z ih =>
let ⟨i, x, h⟩ := exists_of z
- ⟨i, c x * x ^ (n + 1), by rw [Polynomial.map_mul, map_C, h, Polynomial.map_pow, map_X]⟩
+ ⟨i, C x * X ^ (n + 1), by rw [Polynomial.map_mul, map_C, h, Polynomial.map_pow, map_X]⟩
#align ring.direct_limit.polynomial.exists_of Ring.DirectLimit.Polynomial.exists_of
end
mathlib commit https://github.com/leanprover-community/mathlib/commit/62e8311c791f02c47451bf14aa2501048e7c2f33
@@ -4,14 +4,14 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kenny Lau, Chris Hughes
! This file was ported from Lean 3 source module algebra.direct_limit
-! leanprover-community/mathlib commit 4cfc30e317caad46858393f1a7a33f609296cc30
+! leanprover-community/mathlib commit e7f0ddbf65bd7181a85edb74b64bdc35ba4bdc74
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
import Mathbin.Data.Finset.Order
import Mathbin.Algebra.DirectSum.Module
import Mathbin.RingTheory.FreeCommRing
-import Mathbin.RingTheory.Ideal.Operations
+import Mathbin.RingTheory.Ideal.QuotientOperations
/-!
# Direct limit of modules, abelian groups, rings, and fields.
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -706,14 +706,15 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
isSupported_sub (isSupported_of.2 <| Or.inr rfl) (isSupported_of.2 <| Or.inl rfl),
fun [_] => _⟩
· rintro k (rfl | ⟨rfl | _⟩)
- exact hij
- rfl
+ · exact hij
+ · rfl
· rw [(restriction _).map_sub, RingHom.map_sub, restriction_of, dif_pos,
restriction_of, dif_pos, lift_of, lift_of]
- dsimp only
- have := DirectedSystem.map_map (fun i j h => f' i j h) hij (le_refl j : j ≤ j)
- rw [this]
- exact sub_self _
+ on_goal 1 =>
+ dsimp only
+ have := DirectedSystem.map_map (fun i j h => f' i j h) hij (le_refl j : j ≤ j)
+ rw [this]
+ · exact sub_self _
exacts [Or.inl rfl, Or.inr rfl]
· refine' ⟨i, {⟨i, 1⟩}, _, isSupported_sub (isSupported_of.2 rfl) isSupported_one, fun [_] => _⟩
· rintro k (rfl | h)
@@ -732,9 +733,10 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
· rw [(restriction _).map_sub, (restriction _).map_add, restriction_of, restriction_of,
restriction_of, dif_pos, dif_pos, dif_pos, RingHom.map_sub,
(FreeCommRing.lift _).map_add, lift_of, lift_of, lift_of]
- dsimp only
- rw [(f' i i _).map_add]
- exact sub_self _
+ on_goal 1 =>
+ dsimp only
+ rw [(f' i i _).map_add]
+ · exact sub_self _
all_goals tauto
· refine'
⟨i, {⟨i, x * y⟩, ⟨i, x⟩, ⟨i, y⟩}, _,
@@ -745,9 +747,10 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
· rw [(restriction _).map_sub, (restriction _).map_mul, restriction_of, restriction_of,
restriction_of, dif_pos, dif_pos, dif_pos, RingHom.map_sub,
(FreeCommRing.lift _).map_mul, lift_of, lift_of, lift_of]
- dsimp only
- rw [(f' i i _).map_mul]
- exact sub_self _
+ on_goal 1 =>
+ dsimp only
+ rw [(f' i i _).map_mul]
+ · exact sub_self _
all_goals tauto
-- Porting note: was
--exacts [sub_self _, Or.inl rfl, Or.inr (Or.inr rfl), Or.inr (Or.inl rfl)]
@@ -759,8 +762,8 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
obtain ⟨k, hik, hjk⟩ := exists_ge_ge i j
have : ∀ z : Σi, G i, z ∈ s ∪ t → z.1 ≤ k := by
rintro z (hz | hz)
- exact le_trans (hi z hz) hik
- exact le_trans (hj z hz) hjk
+ · exact le_trans (hi z hz) hik
+ · exact le_trans (hj z hz) hjk
refine'
⟨k, s ∪ t, this,
isSupported_add (isSupported_upwards hxs <| Set.subset_union_left s t)
@@ -971,9 +974,9 @@ instance nontrivial [DirectedSystem G fun i j h => f' i j h] :
Nonempty.elim (by infer_instance) fun i : ι => by
change (0 : Ring.DirectLimit G fun i j h => f' i j h) ≠ 1
rw [← (Ring.DirectLimit.of _ _ _).map_one]
- intro H; rcases Ring.DirectLimit.of.zero_exact H.symm with ⟨j, hij, hf⟩
- rw [(f' i j hij).map_one] at hf
- exact one_ne_zero hf⟩⟩
+ · intro H; rcases Ring.DirectLimit.of.zero_exact H.symm with ⟨j, hij, hf⟩
+ rw [(f' i j hij).map_one] at hf
+ exact one_ne_zero hf⟩⟩
#align field.direct_limit.nontrivial Field.DirectLimit.nontrivial
theorem exists_inv {p : Ring.DirectLimit G f} : p ≠ 0 → ∃ y, p * y = 1 :=
NNRat.cast
(#11203)
Define the canonical coercion from the nonnegative rationals to any division semiring.
From LeanAPAP
@@ -1011,6 +1011,7 @@ protected noncomputable def field [DirectedSystem G fun i j h => f' i j h] :
inv := inv G fun i j h => f' i j h
mul_inv_cancel := fun p => DirectLimit.mul_inv_cancel G fun i j h => f' i j h
inv_zero := dif_pos rfl
+ nnqsmul := _
qsmul := _
#align field.direct_limit.field Field.DirectLimit.field
NNRat.cast
(#12360)
This is the parts of the diff of #11203 which don't mention NNRat.cast
.
where
notation.qsmul := _
instead of qsmul := qsmulRec _
to make the instances more robust to definition changes.qsmulRec
.qsmul
before ratCast_def
in instance declarations.rat_smul
to qsmul
.@@ -1005,13 +1005,13 @@ protected theorem inv_mul_cancel {p : Ring.DirectLimit G f} (hp : p ≠ 0) : inv
See note [reducible non-instances]. -/
@[reducible]
protected noncomputable def field [DirectedSystem G fun i j h => f' i j h] :
- Field (Ring.DirectLimit G fun i j h => f' i j h) :=
+ Field (Ring.DirectLimit G fun i j h => f' i j h) where
-- This used to include the parent CommRing and Nontrivial instances,
-- but leaving them implicit avoids a very expensive (2-3 minutes!) eta expansion.
- { inv := inv G fun i j h => f' i j h
- mul_inv_cancel := fun p => DirectLimit.mul_inv_cancel G fun i j h => f' i j h
- inv_zero := dif_pos rfl
- qsmul := qsmulRec _ }
+ inv := inv G fun i j h => f' i j h
+ mul_inv_cancel := fun p => DirectLimit.mul_inv_cancel G fun i j h => f' i j h
+ inv_zero := dif_pos rfl
+ qsmul := _
#align field.direct_limit.field Field.DirectLimit.field
end
Subalgebra.Basic
(#12267)
This PR was supposed to be simultaneous with #12090 but I got ill last week.
This is based on seeing the import Algebra.Algebra.Subalgebra.Basic → RingTheory.Ideal.Operations
on the longest pole. It feels like Ideal.Operations
should not be needed to define the notion of subalgebra, only to construct some interesting examples. So I removed the import and split off anything that wouldn't fit.
The following results and their corollaries were split off:
Subalgebra.prod
Subalgebra.iSupLift
AlgHom.ker_rangeRestrict
Subalgebra.mem_of_finset_sum_eq_one_of_pow_smul_mem
Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
@@ -6,6 +6,7 @@ Authors: Kenny Lau, Chris Hughes, Jujian Zhang
import Mathlib.Data.Finset.Order
import Mathlib.Algebra.DirectSum.Module
import Mathlib.RingTheory.FreeCommRing
+import Mathlib.RingTheory.Ideal.Operations
import Mathlib.RingTheory.Ideal.Quotient
import Mathlib.Tactic.SuppressCompilation
Empty lines were removed by executing the following Python script twice
import os
import re
# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
for filename in files:
if filename.endswith('.lean'):
file_path = os.path.join(dir_path, filename)
# Open the file and read its contents
with open(file_path, 'r') as file:
content = file.read()
# Use a regular expression to replace sequences of "variable" lines separated by empty lines
# with sequences without empty lines
modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)
# Write the modified content back to the file
with open(file_path, 'w') as file:
file.write(modified_content)
@@ -39,11 +39,8 @@ universe u v v' v'' w u₁
open Submodule
variable {R : Type u} [Ring R]
-
variable {ι : Type v}
-
variable [Preorder ι]
-
variable (G : ι → Type w)
/-- A directed system is a functor from a category (directed poset) to another category. -/
@@ -66,7 +63,6 @@ end
namespace Module
variable [∀ i, AddCommGroup (G i)] [∀ i, Module R (G i)]
-
variable {G} (f : ∀ i j, i ≤ j → G i →ₗ[R] G j)
/-- A copy of `DirectedSystem.map_self` specialized to linear maps, as otherwise the
@@ -145,9 +141,7 @@ protected theorem induction_on [Nonempty ι] [IsDirected ι (· ≤ ·)] {C : Di
#align module.direct_limit.induction_on Module.DirectLimit.induction_on
variable {P : Type u₁} [AddCommGroup P] [Module R P] (g : ∀ i, G i →ₗ[R] P)
-
variable (Hg : ∀ i j hij x, g j (f i j hij x) = g i x)
-
variable (R ι G f)
/-- The universal property of the direct limit: maps from the components to another module
@@ -190,7 +184,6 @@ section functorial
variable {G' : ι → Type v'} [∀ i, AddCommGroup (G' i)] [∀ i, Module R (G' i)]
variable {f' : ∀ i j, i ≤ j → G' i →ₗ[R] G' j}
-
variable {G'' : ι → Type v''} [∀ i, AddCommGroup (G'' i)] [∀ i, Module R (G'' i)]
variable {f'' : ∀ i j, i ≤ j → G'' i →ₗ[R] G'' j}
@@ -417,11 +410,8 @@ theorem of.zero_exact [IsDirected ι (· ≤ ·)] [DirectedSystem G fun i j h =>
#align add_comm_group.direct_limit.of.zero_exact AddCommGroup.DirectLimit.of.zero_exact
variable (P : Type u₁) [AddCommGroup P]
-
variable (g : ∀ i, G i →+ P)
-
variable (Hg : ∀ i j hij x, g j (f i j hij x) = g i x)
-
variable (G f)
/-- The universal property of the direct limit: maps from the components to another abelian group
@@ -466,7 +456,6 @@ section functorial
variable {G' : ι → Type v'} [∀ i, AddCommGroup (G' i)]
variable {f' : ∀ i j, i ≤ j → G' i →+ G' j}
-
variable {G'' : ι → Type v''} [∀ i, AddCommGroup (G'' i)]
variable {f'' : ∀ i j, i ≤ j → G'' i →+ G'' j}
@@ -668,9 +657,7 @@ theorem induction_on [Nonempty ι] [IsDirected ι (· ≤ ·)] {C : DirectLimit
section OfZeroExact
variable (f' : ∀ i j, i ≤ j → G i →+* G j)
-
variable [DirectedSystem G fun i j h => f' i j h]
-
variable (G f)
theorem of.zero_exact_aux2 {x : FreeCommRing (Σi, G i)} {s t} [DecidablePred (· ∈ s)]
@@ -832,9 +819,7 @@ theorem of_injective [IsDirected ι (· ≤ ·)] [DirectedSystem G fun i j h =>
#align ring.direct_limit.of_injective Ring.DirectLimit.of_injective
variable (P : Type u₁) [CommRing P]
-
variable (g : ∀ i, G i →+* P)
-
variable (Hg : ∀ i j hij x, g j (f i j hij x) = g i x)
open FreeCommRing
@@ -892,10 +877,8 @@ section functorial
variable {f : ∀ i j, i ≤ j → G i →+* G j}
variable {G' : ι → Type v'} [∀ i, CommRing (G' i)]
variable {f' : ∀ i j, i ≤ j → G' i →+* G' j}
-
variable {G'' : ι → Type v''} [∀ i, CommRing (G'' i)]
variable {f'' : ∀ i j, i ≤ j → G'' i →+* G'' j}
-
variable [Nonempty ι]
/--
Consider direct limits `lim G` and `lim G'` with direct system `f` and `f'` respectively, any
@@ -976,9 +959,7 @@ end Ring
namespace Field
variable [Nonempty ι] [IsDirected ι (· ≤ ·)] [∀ i, Field (G i)]
-
variable (f : ∀ i j, i ≤ j → G i → G j)
-
variable (f' : ∀ i j, i ≤ j → G i →+* G j)
namespace DirectLimit
The general policy in mathlib is to include decidability assumptions on a theorem if and only if they are used in its statement. @fpvandoorn has been working on a linter to detect cases which violate the backwards direction of that policy. (i.e. cases where Classical.propDecidable
appears in a theorem's statement.) I've started going through the output of that linter and this PR contains fixes for the two files I've finished so far.
@@ -290,10 +290,8 @@ end Totalize
variable [DirectedSystem G fun i j h => f i j h]
-open scoped Classical
-
-theorem toModule_totalize_of_le {x : DirectSum ι G} {i j : ι} (hij : i ≤ j)
- (hx : ∀ k ∈ x.support, k ≤ i) :
+theorem toModule_totalize_of_le [∀ i (k : G i), Decidable (k ≠ 0)] {x : DirectSum ι G} {i j : ι}
+ (hij : i ≤ j) (hx : ∀ k ∈ x.support, k ≤ i) :
DirectSum.toModule R ι (G j) (fun k => totalize G f k j) x =
f i j hij (DirectSum.toModule R ι (G i) (fun k => totalize G f k i) x) := by
rw [← @DFinsupp.sum_single ι G _ _ _ x]
@@ -304,8 +302,8 @@ theorem toModule_totalize_of_le {x : DirectSum ι G} {i j : ι} (hij : i ≤ j)
totalize_of_le (hx k hk), totalize_of_le (le_trans (hx k hk) hij), DirectedSystem.map_map]
#align module.direct_limit.to_module_totalize_of_le Module.DirectLimit.toModule_totalize_of_le
-theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : DirectSum ι G}
- (H : (Submodule.Quotient.mk x : DirectLimit G f) = (0 : DirectLimit G f)) :
+theorem of.zero_exact_aux [∀ i (k : G i), Decidable (k ≠ 0)] [Nonempty ι] [IsDirected ι (· ≤ ·)]
+ {x : DirectSum ι G} (H : (Submodule.Quotient.mk x : DirectLimit G f) = (0 : DirectLimit G f)) :
∃ j,
(∀ k ∈ x.support, k ≤ j) ∧
DirectSum.toModule R ι (G j) (fun i => totalize G f i j) x = (0 : G j) :=
@@ -344,6 +342,7 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : DirectS
⟨i, fun k hk => hi k (DirectSum.support_smul _ _ hk), by simp [LinearMap.map_smul, hxi]⟩
#align module.direct_limit.of.zero_exact_aux Module.DirectLimit.of.zero_exact_aux
+open Classical in
/-- A component that corresponds to zero in the direct limit is already zero in some
bigger module in the directed system. -/
theorem of.zero_exact [IsDirected ι (· ≤ ·)] {i x} (H : of R ι G f i x = 0) :
@@ -668,17 +667,15 @@ theorem induction_on [Nonempty ι] [IsDirected ι (· ≤ ·)] {C : DirectLimit
section OfZeroExact
-open scoped Classical
-
variable (f' : ∀ i j, i ≤ j → G i →+* G j)
variable [DirectedSystem G fun i j h => f' i j h]
variable (G f)
-theorem of.zero_exact_aux2 {x : FreeCommRing (Σi, G i)} {s t} (hxs : IsSupported x s) {j k}
- (hj : ∀ z : Σi, G i, z ∈ s → z.1 ≤ j) (hk : ∀ z : Σi, G i, z ∈ t → z.1 ≤ k) (hjk : j ≤ k)
- (hst : s ⊆ t) :
+theorem of.zero_exact_aux2 {x : FreeCommRing (Σi, G i)} {s t} [DecidablePred (· ∈ s)]
+ [DecidablePred (· ∈ t)] (hxs : IsSupported x s) {j k} (hj : ∀ z : Σi, G i, z ∈ s → z.1 ≤ j)
+ (hk : ∀ z : Σi, G i, z ∈ t → z.1 ≤ k) (hjk : j ≤ k) (hst : s ⊆ t) :
f' j k hjk (lift (fun ix : s => f' ix.1.1 j (hj ix ix.2) ix.1.2) (restriction s x)) =
lift (fun ix : t => f' ix.1.1 k (hk ix ix.2) ix.1.2) (restriction t x) := by
refine' Subring.InClosure.recOn hxs _ _ _ _
@@ -711,12 +708,15 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
= (0 : DirectLimit G fun i j h => f' i j h)) :
∃ j s, ∃ H : ∀ k : Σ i, G i, k ∈ s → k.1 ≤ j,
IsSupported x s ∧
- lift (fun ix : s => f' ix.1.1 j (H ix ix.2) ix.1.2) (restriction s x) = (0 : G j) := by
+ ∀ [DecidablePred (· ∈ s)],
+ lift (fun ix : s => f' ix.1.1 j (H ix ix.2) ix.1.2) (restriction s x) = (0 : G j) := by
+ have := Classical.decEq
refine' span_induction (Ideal.Quotient.eq_zero_iff_mem.1 H) _ _ _ _
· rintro x (⟨i, j, hij, x, rfl⟩ | ⟨i, rfl⟩ | ⟨i, x, y, rfl⟩ | ⟨i, x, y, rfl⟩)
· refine'
⟨j, {⟨i, x⟩, ⟨j, f' i j hij x⟩}, _,
- isSupported_sub (isSupported_of.2 <| Or.inr rfl) (isSupported_of.2 <| Or.inl rfl), _⟩
+ isSupported_sub (isSupported_of.2 <| Or.inr rfl) (isSupported_of.2 <| Or.inl rfl),
+ fun [_] => _⟩
· rintro k (rfl | ⟨rfl | _⟩)
exact hij
rfl
@@ -727,7 +727,7 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
rw [this]
exact sub_self _
exacts [Or.inl rfl, Or.inr rfl]
- · refine' ⟨i, {⟨i, 1⟩}, _, isSupported_sub (isSupported_of.2 rfl) isSupported_one, _⟩
+ · refine' ⟨i, {⟨i, 1⟩}, _, isSupported_sub (isSupported_of.2 rfl) isSupported_one, fun [_] => _⟩
· rintro k (rfl | h)
rfl
-- Porting note: the Lean3 proof contained `rw [restriction_of]`, but this
@@ -739,7 +739,7 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
isSupported_sub (isSupported_of.2 <| Or.inl rfl)
(isSupported_add (isSupported_of.2 <| Or.inr <| Or.inl rfl)
(isSupported_of.2 <| Or.inr <| Or.inr rfl)),
- _⟩
+ fun [_] => _⟩
· rintro k (rfl | ⟨rfl | ⟨rfl | hk⟩⟩) <;> rfl
· rw [(restriction _).map_sub, (restriction _).map_add, restriction_of, restriction_of,
restriction_of, dif_pos, dif_pos, dif_pos, RingHom.map_sub,
@@ -752,7 +752,7 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
⟨i, {⟨i, x * y⟩, ⟨i, x⟩, ⟨i, y⟩}, _,
isSupported_sub (isSupported_of.2 <| Or.inl rfl)
(isSupported_mul (isSupported_of.2 <| Or.inr <| Or.inl rfl)
- (isSupported_of.2 <| Or.inr <| Or.inr rfl)), _⟩
+ (isSupported_of.2 <| Or.inr <| Or.inr rfl)), fun [_] => _⟩
· rintro k (rfl | ⟨rfl | ⟨rfl | hk⟩⟩) <;> rfl
· rw [(restriction _).map_sub, (restriction _).map_mul, restriction_of, restriction_of,
restriction_of, dif_pos, dif_pos, dif_pos, RingHom.map_sub,
@@ -764,10 +764,10 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
-- Porting note: was
--exacts [sub_self _, Or.inl rfl, Or.inr (Or.inr rfl), Or.inr (Or.inl rfl)]
· refine' Nonempty.elim (by infer_instance) fun ind : ι => _
- refine' ⟨ind, ∅, fun _ => False.elim, isSupported_zero, _⟩
+ refine' ⟨ind, ∅, fun _ => False.elim, isSupported_zero, fun [_] => _⟩
-- Porting note: `RingHom.map_zero` was `(restriction _).map_zero`
rw [RingHom.map_zero, (FreeCommRing.lift _).map_zero]
- · rintro x y ⟨i, s, hi, hxs, ihs⟩ ⟨j, t, hj, hyt, iht⟩
+ · intro x y ⟨i, s, hi, hxs, ihs⟩ ⟨j, t, hj, hyt, iht⟩
obtain ⟨k, hik, hjk⟩ := exists_ge_ge i j
have : ∀ z : Σi, G i, z ∈ s ∪ t → z.1 ≤ k := by
rintro z (hz | hz)
@@ -776,9 +776,9 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
refine'
⟨k, s ∪ t, this,
isSupported_add (isSupported_upwards hxs <| Set.subset_union_left s t)
- (isSupported_upwards hyt <| Set.subset_union_right s t), _⟩
+ (isSupported_upwards hyt <| Set.subset_union_right s t), fun [_] => _⟩
· -- Porting note: was `(restriction _).map_add`
- rw [RingHom.map_add, (FreeCommRing.lift _).map_add, ←
+ classical rw [RingHom.map_add, (FreeCommRing.lift _).map_add, ←
of.zero_exact_aux2 G f' hxs hi this hik (Set.subset_union_left s t), ←
of.zero_exact_aux2 G f' hyt hj this hjk (Set.subset_union_right s t), ihs,
(f' i k hik).map_zero, iht, (f' j k hjk).map_zero, zero_add]
@@ -793,9 +793,9 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
refine'
⟨k, ↑s ∪ t, this,
isSupported_mul (isSupported_upwards hxs <| Set.subset_union_left (↑s) t)
- (isSupported_upwards hyt <| Set.subset_union_right (↑s) t), _⟩
+ (isSupported_upwards hyt <| Set.subset_union_right (↑s) t), fun [_] => _⟩
-- Porting note: RingHom.map_mul was `(restriction _).map_mul`
- rw [RingHom.map_mul, (FreeCommRing.lift _).map_mul, ←
+ classical rw [RingHom.map_mul, (FreeCommRing.lift _).map_mul, ←
of.zero_exact_aux2 G f' hyt hj this hjk (Set.subset_union_right (↑s) t), iht,
(f' j k hjk).map_zero, mul_zero]
#align ring.direct_limit.of.zero_exact_aux Ring.DirectLimit.of.zero_exact_aux
@@ -803,11 +803,12 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
/-- A component that corresponds to zero in the direct limit is already zero in some
bigger module in the directed system. -/
theorem of.zero_exact [IsDirected ι (· ≤ ·)] {i x} (hix : of G (fun i j h => f' i j h) i x = 0) :
- ∃ (j : _) (hij : i ≤ j), f' i j hij x = 0 :=
+ ∃ (j : _) (hij : i ≤ j), f' i j hij x = 0 := by
haveI : Nonempty ι := ⟨i⟩
let ⟨j, s, H, hxs, hx⟩ := of.zero_exact_aux hix
have hixs : (⟨i, x⟩ : Σi, G i) ∈ s := isSupported_of.1 hxs
- ⟨j, H ⟨i, x⟩ hixs, by rw [restriction_of, dif_pos hixs, lift_of] at hx; exact hx⟩
+ classical specialize @hx _
+ exact ⟨j, H ⟨i, x⟩ hixs, by classical rw [restriction_of, dif_pos hixs, lift_of] at hx; exact hx⟩
#align ring.direct_limit.of.zero_exact Ring.DirectLimit.of.zero_exact
end OfZeroExact
DecidableEq
assumptions (#11288)
... by moving variable [DecidableEq ι]
to section
s.
@@ -42,7 +42,7 @@ variable {R : Type u} [Ring R]
variable {ι : Type v}
-variable [dec_ι : DecidableEq ι] [Preorder ι]
+variable [Preorder ι]
variable (G : ι → Type w)
@@ -84,6 +84,7 @@ nonrec theorem DirectedSystem.map_map [DirectedSystem G fun i j h => f i j h] {i
#align module.directed_system.map_map Module.DirectedSystem.map_map
variable (G)
+variable [DecidableEq ι]
/-- The direct limit of a directed system is the modules glued together along the maps. -/
def DirectLimit : Type max v w :=
@@ -365,11 +366,11 @@ end Module
namespace AddCommGroup
-variable [∀ i, AddCommGroup (G i)]
+variable [DecidableEq ι] [∀ i, AddCommGroup (G i)]
/-- The direct limit of a directed system is the abelian groups glued together along the maps. -/
def DirectLimit (f : ∀ i j, i ≤ j → G i →+ G j) : Type _ :=
- @Module.DirectLimit ℤ _ ι _ _ G _ _ fun i j hij => (f i j hij).toIntLinearMap
+ @Module.DirectLimit ℤ _ ι _ G _ _ (fun i j hij => (f i j hij).toIntLinearMap) _
#align add_comm_group.direct_limit AddCommGroup.DirectLimit
namespace DirectLimit
@@ -708,8 +709,7 @@ variable {G f f'}
theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCommRing (Σi, G i)}
(H : (Ideal.Quotient.mk _ x : DirectLimit G fun i j h => f' i j h)
= (0 : DirectLimit G fun i j h => f' i j h)) :
- ∃ j s,
- ∃ H : ∀ k : Σi, G i, k ∈ s → k.1 ≤ j,
+ ∃ j s, ∃ H : ∀ k : Σ i, G i, k ∈ s → k.1 ≤ j,
IsSupported x s ∧
lift (fun ix : s => f' ix.1.1 j (H ix ix.2) ix.1.2) (restriction s x) = (0 : G j) := by
refine' span_induction (Ideal.Quotient.eq_zero_iff_mem.1 H) _ _ _ _
@@ -1027,7 +1027,8 @@ protected noncomputable def field [DirectedSystem G fun i j h => f' i j h] :
-- but leaving them implicit avoids a very expensive (2-3 minutes!) eta expansion.
{ inv := inv G fun i j h => f' i j h
mul_inv_cancel := fun p => DirectLimit.mul_inv_cancel G fun i j h => f' i j h
- inv_zero := dif_pos rfl }
+ inv_zero := dif_pos rfl
+ qsmul := qsmulRec _ }
#align field.direct_limit.field Field.DirectLimit.field
end
open Classical
(#11199)
We remove all but one open Classical
s, instead preferring to use open scoped Classical
. The only real side-effect this led to is moving a couple declarations to use Exists.choose
instead of Classical.choose
.
The first few commits are explicitly labelled regex replaces for ease of review.
@@ -264,7 +264,7 @@ end functorial
section Totalize
-open Classical
+open scoped Classical
variable (G f)
@@ -289,7 +289,7 @@ end Totalize
variable [DirectedSystem G fun i j h => f i j h]
-open Classical
+open scoped Classical
theorem toModule_totalize_of_le {x : DirectSum ι G} {i j : ι} (hij : i ≤ j)
(hx : ∀ k ∈ x.support, k ≤ i) :
@@ -633,7 +633,7 @@ theorem exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)] (z : DirectLimit G f
section
-open Classical
+open scoped Classical
open Polynomial
@@ -667,7 +667,7 @@ theorem induction_on [Nonempty ι] [IsDirected ι (· ≤ ·)] {C : DirectLimit
section OfZeroExact
-open Classical
+open scoped Classical
variable (f' : ∀ i j, i ≤ j → G i →+* G j)
@@ -1003,7 +1003,7 @@ theorem exists_inv {p : Ring.DirectLimit G f} : p ≠ 0 → ∃ y, p * y = 1 :=
section
-open Classical
+open scoped Classical
/-- Noncomputable multiplicative inverse in a direct limit of fields. -/
noncomputable def inv (p : Ring.DirectLimit G f) : Ring.DirectLimit G f :=
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -353,7 +353,7 @@ theorem of.zero_exact [IsDirected ι (· ≤ ·)] {i x} (H : of R ι G f i x = 0
else
have hij : i ≤ j := hj _ <| by simp [DirectSum.apply_eq_component, hx0]
⟨j, hij, by
- -- porting note: this had been
+ -- Porting note: this had been
-- simpa [totalize_of_le hij] using hxj
simp only [DirectSum.toModule_lof] at hxj
rwa [totalize_of_le hij] at hxj⟩
@@ -596,7 +596,7 @@ nonrec def of (i) : G i →+* DirectLimit G f :=
variable {G f}
--- porting note: the @[simp] attribute would trigger a `simpNF` linter error:
+-- Porting note: the @[simp] attribute would trigger a `simpNF` linter error:
-- failed to synthesize CommMonoidWithZero (Ring.DirectLimit G f)
theorem of_f {i j} (hij) (x) : of G f j (f i j hij x) = of G f i x :=
Ideal.Quotient.eq.2 <| subset_span <| Or.inl ⟨i, j, hij, x, rfl⟩
@@ -622,7 +622,7 @@ theorem exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)] (z : DirectLimit G f
symm
apply FreeCommRing.of_cons⟩)
(fun s ⟨i, x, ih⟩ => ⟨i, -x, by
- -- porting note: Lean 3 was `of _ _ _`; Lean 4 is not as good at unification
+ -- Porting note: Lean 3 was `of _ _ _`; Lean 4 is not as good at unification
-- here as Lean 3 is, for some reason.
rw [(of G f i).map_neg, ih]
rfl⟩)
@@ -683,11 +683,11 @@ theorem of.zero_exact_aux2 {x : FreeCommRing (Σi, G i)} {s t} (hxs : IsSupporte
refine' Subring.InClosure.recOn hxs _ _ _ _
· rw [(restriction _).map_one, (FreeCommRing.lift _).map_one, (f' j k hjk).map_one,
(restriction _).map_one, (FreeCommRing.lift _).map_one]
- · -- porting note: Lean 3 had `(FreeCommRing.lift _).map_neg` but I needed to replace it with
+ · -- Porting note: Lean 3 had `(FreeCommRing.lift _).map_neg` but I needed to replace it with
-- `RingHom.map_neg` to get the rewrite to compile
rw [(restriction _).map_neg, (restriction _).map_one, RingHom.map_neg,
(FreeCommRing.lift _).map_one, (f' j k hjk).map_neg, (f' j k hjk).map_one,
- -- porting note: similarly here I give strictly less information
+ -- Porting note: similarly here I give strictly less information
(restriction _).map_neg, (restriction _).map_one, RingHom.map_neg,
(FreeCommRing.lift _).map_one]
· rintro _ ⟨p, hps, rfl⟩ n ih
@@ -695,7 +695,7 @@ theorem of.zero_exact_aux2 {x : FreeCommRing (Σi, G i)} {s t} (hxs : IsSupporte
(restriction _).map_mul, (FreeCommRing.lift _).map_mul, restriction_of, dif_pos hps, lift_of,
restriction_of, dif_pos (hst hps), lift_of]
dsimp only
- -- porting note: Lean 3 could get away with far fewer hints for inputs in the line below
+ -- Porting note: Lean 3 could get away with far fewer hints for inputs in the line below
have := DirectedSystem.map_map (fun i j h => f' i j h) (hj p hps) hjk
rw [this]
· rintro x y ihx ihy
@@ -730,7 +730,7 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
· refine' ⟨i, {⟨i, 1⟩}, _, isSupported_sub (isSupported_of.2 rfl) isSupported_one, _⟩
· rintro k (rfl | h)
rfl
- -- porting note: the Lean3 proof contained `rw [restriction_of]`, but this
+ -- Porting note: the Lean3 proof contained `rw [restriction_of]`, but this
-- lemma does not seem to work here
· rw [RingHom.map_sub, RingHom.map_sub]
erw [lift_of, dif_pos rfl, RingHom.map_one, lift_of, RingHom.map_one, sub_self]
@@ -761,11 +761,11 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
rw [(f' i i _).map_mul]
exact sub_self _
all_goals tauto
- -- porting note: was
+ -- Porting note: was
--exacts [sub_self _, Or.inl rfl, Or.inr (Or.inr rfl), Or.inr (Or.inl rfl)]
· refine' Nonempty.elim (by infer_instance) fun ind : ι => _
refine' ⟨ind, ∅, fun _ => False.elim, isSupported_zero, _⟩
- -- porting note: `RingHom.map_zero` was `(restriction _).map_zero`
+ -- Porting note: `RingHom.map_zero` was `(restriction _).map_zero`
rw [RingHom.map_zero, (FreeCommRing.lift _).map_zero]
· rintro x y ⟨i, s, hi, hxs, ihs⟩ ⟨j, t, hj, hyt, iht⟩
obtain ⟨k, hik, hjk⟩ := exists_ge_ge i j
@@ -777,7 +777,7 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
⟨k, s ∪ t, this,
isSupported_add (isSupported_upwards hxs <| Set.subset_union_left s t)
(isSupported_upwards hyt <| Set.subset_union_right s t), _⟩
- · -- porting note: was `(restriction _).map_add`
+ · -- Porting note: was `(restriction _).map_add`
rw [RingHom.map_add, (FreeCommRing.lift _).map_add, ←
of.zero_exact_aux2 G f' hxs hi this hik (Set.subset_union_left s t), ←
of.zero_exact_aux2 G f' hyt hj this hjk (Set.subset_union_right s t), ihs,
@@ -794,7 +794,7 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
⟨k, ↑s ∪ t, this,
isSupported_mul (isSupported_upwards hxs <| Set.subset_union_left (↑s) t)
(isSupported_upwards hyt <| Set.subset_union_right (↑s) t), _⟩
- -- porting note: RingHom.map_mul was `(restriction _).map_mul`
+ -- Porting note: RingHom.map_mul was `(restriction _).map_mul`
rw [RingHom.map_mul, (FreeCommRing.lift _).map_mul, ←
of.zero_exact_aux2 G f' hyt hj this hjk (Set.subset_union_right (↑s) t), iht,
(f' j k hjk).map_zero, mul_zero]
@@ -861,7 +861,7 @@ def lift : DirectLimit G f →+* P :=
variable {G f}
--- porting note: the @[simp] attribute would trigger a `simpNF` linter error:
+-- Porting note: the @[simp] attribute would trigger a `simpNF` linter error:
-- failed to synthesize CommMonoidWithZero (Ring.DirectLimit G f)
theorem lift_of (i x) : lift G f P g Hg (of G f i x) = g i x :=
FreeCommRing.lift_of _ _
suppress_compilation
(#9664)
Uses suppress_compilation
to lessen the load on Lean when building the file.
@@ -7,6 +7,7 @@ import Mathlib.Data.Finset.Order
import Mathlib.Algebra.DirectSum.Module
import Mathlib.RingTheory.FreeCommRing
import Mathlib.RingTheory.Ideal.Quotient
+import Mathlib.Tactic.SuppressCompilation
#align_import algebra.direct_limit from "leanprover-community/mathlib"@"f0c8bf9245297a541f468be517f1bde6195105e9"
@@ -31,6 +32,7 @@ so as to make the operations (addition etc.) "computable".
-/
+suppress_compilation
universe u v v' v'' w u₁
The FunLike hierarchy is very big and gets scanned through each time we need a coercion (via the CoeFun
instance). It looks like unbundled inheritance suits Lean 4 better here. The only class that still extends FunLike
is EquivLike
, since that has a custom coe_injective'
field that is easier to implement. All other classes should take FunLike
or EquivLike
as a parameter.
Previously, morphism classes would be Type
-valued and extend FunLike
:
/-- `MyHomClass F A B` states that `F` is a type of `MyClass.op`-preserving morphisms.
You should extend this class when you extend `MyHom`. -/
class MyHomClass (F : Type*) (A B : outParam <| Type*) [MyClass A] [MyClass B]
extends FunLike F A B :=
(map_op : ∀ (f : F) (x y : A), f (MyClass.op x y) = MyClass.op (f x) (f y))
After this PR, they should be Prop
-valued and take FunLike
as a parameter:
/-- `MyHomClass F A B` states that `F` is a type of `MyClass.op`-preserving morphisms.
You should extend this class when you extend `MyHom`. -/
class MyHomClass (F : Type*) (A B : outParam <| Type*) [MyClass A] [MyClass B]
[FunLike F A B] : Prop :=
(map_op : ∀ (f : F) (x y : A), f (MyClass.op x y) = MyClass.op (f x) (f y))
(Note that A B
stay marked as outParam
even though they are not purely required to be so due to the FunLike
parameter already filling them in. This is required to see through type synonyms, which is important in the category theory library. Also, I think keeping them as outParam
is slightly faster.)
Similarly, MyEquivClass
should take EquivLike
as a parameter.
As a result, every mention of [MyHomClass F A B]
should become [FunLike F A B] [MyHomClass F A B]
.
While overall this gives some great speedups, there are some cases that are noticeably slower. In particular, a failing application of a lemma such as map_mul
is more expensive. This is due to suboptimal processing of arguments. For example:
variable [FunLike F M N] [Mul M] [Mul N] (f : F) (x : M) (y : M)
theorem map_mul [MulHomClass F M N] : f (x * y) = f x * f y
example [AddHomClass F A B] : f (x * y) = f x * f y := map_mul f _ _
Before this PR, applying map_mul f
gives the goals [Mul ?M] [Mul ?N] [MulHomClass F ?M ?N]
. Since M
and N
are out_param
s, [MulHomClass F ?M ?N]
is synthesized first, supplies values for ?M
and ?N
and then the Mul M
and Mul N
instances can be found.
After this PR, the goals become [FunLike F ?M ?N] [Mul ?M] [Mul ?N] [MulHomClass F ?M ?N]
. Now [FunLike F ?M ?N]
is synthesized first, supplies values for ?M
and ?N
and then the Mul M
and Mul N
instances can be found, before trying MulHomClass F M N
which fails. Since the Mul
hierarchy is very big, this can be slow to fail, especially when there is no such Mul
instance.
A long-term but harder to achieve solution would be to specify the order in which instance goals get solved. For example, we'd like to change the arguments to map_mul
to look like [FunLike F M N] [Mul M] [Mul N] [highPriority <| MulHomClass F M N]
because MulHomClass
fails or succeeds much faster than the others.
As a consequence, the simpNF
linter is much slower since by design it tries and fails to apply many map_
lemmas. The same issue occurs a few times in existing calls to simp [map_mul]
, where map_mul
is tried "too soon" and fails. Thanks to the speedup of leanprover/lean4#2478 the impact is very limited, only in files that already were close to the timeout.
simp
not firing sometimesThis affects map_smulₛₗ
and related definitions. For simp
lemmas Lean apparently uses a slightly different mechanism to find instances, so that rw
can find every argument to map_smulₛₗ
successfully but simp
can't: leanprover/lean4#3701.
Especially in the category theory library, we might sometimes have a type A
which is also accessible as a synonym (Bundled A hA).1
. Instance synthesis doesn't always work if we have f : A →* B
but x * y : (Bundled A hA).1
or vice versa. This seems to be mostly fixed by keeping A B
as outParam
s in MulHomClass F A B
. (Presumably because Lean will do a definitional check A =?= (Bundled A hA).1
instead of using the syntax in the discrimination tree.)
The timeouts can be worked around for now by specifying which map_mul
we mean, either as map_mul f
for some explicit f
, or as e.g. MonoidHomClass.map_mul
.
map_smulₛₗ
not firing as simp
lemma can be worked around by going back to the pre-FunLike situation and making LinearMap.map_smulₛₗ
a simp
lemma instead of the generic map_smulₛₗ
. Writing simp [map_smulₛₗ _]
also works.
Co-authored-by: Matthew Ballard <matt@mrb.email> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Scott Morrison <scott@tqft.net> Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
@@ -434,7 +434,12 @@ variable {G f}
@[simp]
theorem lift_of (i x) : lift G f P g Hg (of G f i x) = g i x :=
- Module.DirectLimit.lift_of _ _ _
+ Module.DirectLimit.lift_of
+ -- Note: had to make these arguments explicit #8386
+ (f := (fun i j hij => (f i j hij).toIntLinearMap))
+ (fun i => (g i).toIntLinearMap)
+ Hg
+ x
#align add_comm_group.direct_limit.lift_of AddCommGroup.DirectLimit.lift_of
theorem lift_unique [IsDirected ι (· ≤ ·)] (F : DirectLimit G f →+ P) (x) :
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>
@@ -719,7 +719,7 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
have := DirectedSystem.map_map (fun i j h => f' i j h) hij (le_refl j : j ≤ j)
rw [this]
exact sub_self _
- exacts [Or.inr rfl, Or.inl rfl]
+ exacts [Or.inl rfl, Or.inr rfl]
· refine' ⟨i, {⟨i, 1⟩}, _, isSupported_sub (isSupported_of.2 rfl) isSupported_one, _⟩
· rintro k (rfl | h)
rfl
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>
@@ -213,7 +213,7 @@ def map (g : (i : ι) → G i →ₗ[R] G' i) (hg : ∀ i j h, g j ∘ₗ f i j
@[simp] lemma map_id [IsDirected ι (· ≤ ·)] :
map (fun i ↦ LinearMap.id) (fun _ _ _ ↦ rfl) = LinearMap.id (R := R) (M := DirectLimit G f) :=
- FunLike.ext _ _ fun x ↦ (isEmpty_or_nonempty ι).elim (fun _ ↦ Subsingleton.elim _ _) fun _ ↦
+ DFunLike.ext _ _ fun x ↦ (isEmpty_or_nonempty ι).elim (fun _ ↦ Subsingleton.elim _ _) fun _ ↦
x.induction_on fun i g ↦ by simp
lemma map_comp [IsDirected ι (· ≤ ·)]
@@ -225,7 +225,7 @@ lemma map_comp [IsDirected ι (· ≤ ·)]
(map (fun i ↦ g₂ i ∘ₗ g₁ i) fun i j h ↦ by
rw [LinearMap.comp_assoc, hg₁ i, ← LinearMap.comp_assoc, hg₂ i, LinearMap.comp_assoc] :
DirectLimit G f →ₗ[R] DirectLimit G'' f'') :=
- FunLike.ext _ _ fun x ↦ (isEmpty_or_nonempty ι).elim (fun _ ↦ Subsingleton.elim _ _) fun _ ↦
+ DFunLike.ext _ _ fun x ↦ (isEmpty_or_nonempty ι).elim (fun _ ↦ Subsingleton.elim _ _) fun _ ↦
x.induction_on fun i g ↦ by simp
open LinearEquiv LinearMap in
@@ -474,7 +474,7 @@ def map (g : (i : ι) → G i →+ G' i)
lift _ _ _ (fun i ↦ (of _ _ _).comp (g i)) fun i j h g ↦ by
cases isEmpty_or_nonempty ι
· exact Subsingleton.elim _ _
- · have eq1 := FunLike.congr_fun (hg i j h) g
+ · have eq1 := DFunLike.congr_fun (hg i j h) g
simp only [AddMonoidHom.coe_comp, Function.comp_apply] at eq1 ⊢
rw [eq1, of_f]
@@ -486,7 +486,7 @@ def map (g : (i : ι) → G i →+ G' i)
@[simp] lemma map_id [IsDirected ι (· ≤ ·)] :
map (fun i ↦ AddMonoidHom.id _) (fun _ _ _ ↦ rfl) = AddMonoidHom.id (DirectLimit G f) :=
- FunLike.ext _ _ fun x ↦ (isEmpty_or_nonempty ι).elim (fun _ ↦ Subsingleton.elim _ _) fun _ ↦
+ DFunLike.ext _ _ fun x ↦ (isEmpty_or_nonempty ι).elim (fun _ ↦ Subsingleton.elim _ _) fun _ ↦
x.induction_on fun i g ↦ by simp
lemma map_comp [IsDirected ι (· ≤ ·)]
@@ -499,7 +499,7 @@ lemma map_comp [IsDirected ι (· ≤ ·)]
rw [AddMonoidHom.comp_assoc, hg₁ i, ← AddMonoidHom.comp_assoc, hg₂ i,
AddMonoidHom.comp_assoc] :
DirectLimit G f →+ DirectLimit G'' f'') :=
- FunLike.ext _ _ fun x ↦ (isEmpty_or_nonempty ι).elim (fun _ ↦ Subsingleton.elim _ _) fun _ ↦
+ DFunLike.ext _ _ fun x ↦ (isEmpty_or_nonempty ι).elim (fun _ ↦ Subsingleton.elim _ _) fun _ ↦
x.induction_on fun i g ↦ by simp
/--
@@ -512,8 +512,8 @@ def congr [IsDirected ι (· ≤ ·)]
(he : ∀ i j h, (e j).toAddMonoidHom.comp (f i j h) = (f' i j h).comp (e i)) :
DirectLimit G f ≃+ DirectLimit G' f' :=
AddMonoidHom.toAddEquiv (map (e ·) he)
- (map (fun i ↦ (e i).symm) fun i j h ↦ FunLike.ext _ _ fun x ↦ by
- have eq1 := FunLike.congr_fun (he i j h) ((e i).symm x)
+ (map (fun i ↦ (e i).symm) fun i j h ↦ DFunLike.ext _ _ fun x ↦ by
+ have eq1 := DFunLike.congr_fun (he i j h) ((e i).symm x)
simp only [AddMonoidHom.coe_comp, AddEquiv.coe_toAddMonoidHom, Function.comp_apply,
AddMonoidHom.coe_coe, AddEquiv.apply_symm_apply] at eq1 ⊢
simp [← eq1, of_f])
@@ -863,7 +863,7 @@ theorem lift_of (i x) : lift G f P g Hg (of G f i x) = g i x :=
theorem lift_unique [IsDirected ι (· ≤ ·)] (F : DirectLimit G f →+* P) (x) :
F x = lift G f P (fun i => F.comp <| of G f i) (fun i j hij x => by simp [of_f]) x := by
cases isEmpty_or_nonempty ι
- · apply FunLike.congr_fun
+ · apply DFunLike.congr_fun
apply Ideal.Quotient.ringHom_ext
refine FreeCommRing.hom_ext fun ⟨i, _⟩ ↦ ?_
exact IsEmpty.elim' inferInstance i
@@ -898,7 +898,7 @@ def map (g : (i : ι) → G i →+* G' i)
(hg : ∀ i j h, (g j).comp (f i j h) = (f' i j h).comp (g i)) :
DirectLimit G (fun _ _ h ↦ f _ _ h) →+* DirectLimit G' fun _ _ h ↦ f' _ _ h :=
lift _ _ _ (fun i ↦ (of _ _ _).comp (g i)) fun i j h g ↦ by
- have eq1 := FunLike.congr_fun (hg i j h) g
+ have eq1 := DFunLike.congr_fun (hg i j h) g
simp only [RingHom.coe_comp, Function.comp_apply] at eq1 ⊢
rw [eq1, of_f]
@@ -911,7 +911,7 @@ def map (g : (i : ι) → G i →+* G' i)
@[simp] lemma map_id [IsDirected ι (· ≤ ·)] :
map (fun i ↦ RingHom.id _) (fun _ _ _ ↦ rfl) =
RingHom.id (DirectLimit G fun _ _ h ↦ f _ _ h) :=
- FunLike.ext _ _ fun x ↦ x.induction_on fun i g ↦ by simp
+ DFunLike.ext _ _ fun x ↦ x.induction_on fun i g ↦ by simp
lemma map_comp [IsDirected ι (· ≤ ·)]
(g₁ : (i : ι) → G i →+* G' i) (g₂ : (i : ι) → G' i →+* G'' i)
@@ -922,7 +922,7 @@ lemma map_comp [IsDirected ι (· ≤ ·)]
(map (fun i ↦ (g₂ i).comp (g₁ i)) fun i j h ↦ by
rw [RingHom.comp_assoc, hg₁ i, ← RingHom.comp_assoc, hg₂ i, RingHom.comp_assoc] :
DirectLimit G (fun _ _ h ↦ f _ _ h) →+* DirectLimit G'' fun _ _ h ↦ f'' _ _ h) :=
- FunLike.ext _ _ fun x ↦ x.induction_on fun i g ↦ by simp
+ DFunLike.ext _ _ fun x ↦ x.induction_on fun i g ↦ by simp
/--
Consider direct limits `lim G` and `lim G'` with direct system `f` and `f'` respectively, any
@@ -935,13 +935,13 @@ def congr [IsDirected ι (· ≤ ·)]
DirectLimit G (fun _ _ h ↦ f _ _ h) ≃+* DirectLimit G' fun _ _ h ↦ f' _ _ h :=
RingEquiv.ofHomInv
(map (e ·) he)
- (map (fun i ↦ (e i).symm) fun i j h ↦ FunLike.ext _ _ fun x ↦ by
- have eq1 := FunLike.congr_fun (he i j h) ((e i).symm x)
+ (map (fun i ↦ (e i).symm) fun i j h ↦ DFunLike.ext _ _ fun x ↦ by
+ have eq1 := DFunLike.congr_fun (he i j h) ((e i).symm x)
simp only [RingEquiv.toRingHom_eq_coe, RingHom.coe_comp, RingHom.coe_coe, Function.comp_apply,
RingEquiv.apply_symm_apply] at eq1 ⊢
simp [← eq1, of_f])
- (FunLike.ext _ _ fun x ↦ x.induction_on <| by simp)
- (FunLike.ext _ _ fun x ↦ x.induction_on <| by simp)
+ (DFunLike.ext _ _ fun x ↦ x.induction_on <| by simp)
+ (DFunLike.ext _ _ fun x ↦ x.induction_on <| by simp)
lemma congr_apply_of [IsDirected ι (· ≤ ·)]
(e : (i : ι) → G i ≃+* G' i)
map, congr, lift_injective
for direct limits of modules, abelian groups and rings (#8692)
Consider direct limits lim G
and lim G'
with direct system f
and f'
respectively, any
family of linear maps gᵢ : Gᵢ ⟶ G'ᵢ
such that g ∘ f = f' ∘ g
induces a linear map
lim G ⟶ lim G'
. When gᵢ
's are equivalence, so is the induced. Similarly for direct limits of groups and rings
This PR is splitted from #8473
Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
@@ -1,7 +1,7 @@
/-
Copyright (c) 2019 Kenny Lau, Chris Hughes. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
-Authors: Kenny Lau, Chris Hughes
+Authors: Kenny Lau, Chris Hughes, Jujian Zhang
-/
import Mathlib.Data.Finset.Order
import Mathlib.Algebra.DirectSum.Module
@@ -32,7 +32,7 @@ so as to make the operations (addition etc.) "computable".
-/
-universe u v w u₁
+universe u v v' v'' w u₁
open Submodule
@@ -172,6 +172,94 @@ theorem lift_unique [IsDirected ι (· ≤ ·)] (F : DirectLimit G f →ₗ[R] P
· exact DirectLimit.induction_on x fun i x => by rw [lift_of]; rfl
#align module.direct_limit.lift_unique Module.DirectLimit.lift_unique
+lemma lift_injective [IsDirected ι (· ≤ ·)]
+ (injective : ∀ i, Function.Injective <| g i) :
+ Function.Injective (lift R ι G f g Hg) := by
+ cases isEmpty_or_nonempty ι
+ · apply Function.injective_of_subsingleton
+ simp_rw [injective_iff_map_eq_zero] at injective ⊢
+ intros z hz
+ induction' z using DirectLimit.induction_on with _ g
+ rw [lift_of] at hz
+ rw [injective _ g hz, _root_.map_zero]
+
+section functorial
+
+variable {G' : ι → Type v'} [∀ i, AddCommGroup (G' i)] [∀ i, Module R (G' i)]
+variable {f' : ∀ i j, i ≤ j → G' i →ₗ[R] G' j}
+
+variable {G'' : ι → Type v''} [∀ i, AddCommGroup (G'' i)] [∀ i, Module R (G'' i)]
+variable {f'' : ∀ i j, i ≤ j → G'' i →ₗ[R] G'' j}
+
+/--
+Consider direct limits `lim G` and `lim G'` with direct system `f` and `f'` respectively, any
+family of linear maps `gᵢ : Gᵢ ⟶ G'ᵢ` such that `g ∘ f = f' ∘ g` induces a linear map
+`lim G ⟶ lim G'`.
+-/
+def map (g : (i : ι) → G i →ₗ[R] G' i) (hg : ∀ i j h, g j ∘ₗ f i j h = f' i j h ∘ₗ g i) :
+ DirectLimit G f →ₗ[R] DirectLimit G' f' :=
+ lift _ _ _ _ (fun i ↦ of _ _ _ _ _ ∘ₗ g i) fun i j h g ↦ by
+ cases isEmpty_or_nonempty ι
+ · exact Subsingleton.elim _ _
+ · have eq1 := LinearMap.congr_fun (hg i j h) g
+ simp only [LinearMap.coe_comp, Function.comp_apply] at eq1 ⊢
+ rw [eq1, of_f]
+
+@[simp] lemma map_apply_of (g : (i : ι) → G i →ₗ[R] G' i)
+ (hg : ∀ i j h, g j ∘ₗ f i j h = f' i j h ∘ₗ g i)
+ {i : ι} (x : G i) :
+ map g hg (of _ _ G f _ x) = of R ι G' f' i (g i x) :=
+ lift_of _ _ _
+
+@[simp] lemma map_id [IsDirected ι (· ≤ ·)] :
+ map (fun i ↦ LinearMap.id) (fun _ _ _ ↦ rfl) = LinearMap.id (R := R) (M := DirectLimit G f) :=
+ FunLike.ext _ _ fun x ↦ (isEmpty_or_nonempty ι).elim (fun _ ↦ Subsingleton.elim _ _) fun _ ↦
+ x.induction_on fun i g ↦ by simp
+
+lemma map_comp [IsDirected ι (· ≤ ·)]
+ (g₁ : (i : ι) → G i →ₗ[R] G' i) (g₂ : (i : ι) → G' i →ₗ[R] G'' i)
+ (hg₁ : ∀ i j h, g₁ j ∘ₗ f i j h = f' i j h ∘ₗ g₁ i)
+ (hg₂ : ∀ i j h, g₂ j ∘ₗ f' i j h = f'' i j h ∘ₗ g₂ i) :
+ (map g₂ hg₂ ∘ₗ map g₁ hg₁ :
+ DirectLimit G f →ₗ[R] DirectLimit G'' f'') =
+ (map (fun i ↦ g₂ i ∘ₗ g₁ i) fun i j h ↦ by
+ rw [LinearMap.comp_assoc, hg₁ i, ← LinearMap.comp_assoc, hg₂ i, LinearMap.comp_assoc] :
+ DirectLimit G f →ₗ[R] DirectLimit G'' f'') :=
+ FunLike.ext _ _ fun x ↦ (isEmpty_or_nonempty ι).elim (fun _ ↦ Subsingleton.elim _ _) fun _ ↦
+ x.induction_on fun i g ↦ by simp
+
+open LinearEquiv LinearMap in
+/--
+Consider direct limits `lim G` and `lim G'` with direct system `f` and `f'` respectively, any
+family of equivalences `eᵢ : Gᵢ ≅ G'ᵢ` such that `e ∘ f = f' ∘ e` induces an equivalence
+`lim G ≅ lim G'`.
+-/
+def congr [IsDirected ι (· ≤ ·)]
+ (e : (i : ι) → G i ≃ₗ[R] G' i) (he : ∀ i j h, e j ∘ₗ f i j h = f' i j h ∘ₗ e i) :
+ DirectLimit G f ≃ₗ[R] DirectLimit G' f' :=
+ LinearEquiv.ofLinear (map (e ·) he)
+ (map (fun i ↦ (e i).symm) fun i j h ↦ by
+ rw [toLinearMap_symm_comp_eq, ← comp_assoc, he i, comp_assoc, comp_coe, symm_trans_self,
+ refl_toLinearMap, comp_id])
+ (by simp [map_comp]) (by simp [map_comp])
+
+lemma congr_apply_of [IsDirected ι (· ≤ ·)]
+ (e : (i : ι) → G i ≃ₗ[R] G' i) (he : ∀ i j h, e j ∘ₗ f i j h = f' i j h ∘ₗ e i)
+ {i : ι} (g : G i) :
+ congr e he (of _ _ G f i g) = of _ _ G' f' i (e i g) :=
+ map_apply_of _ he _
+
+open LinearEquiv LinearMap in
+lemma congr_symm_apply_of [IsDirected ι (· ≤ ·)]
+ (e : (i : ι) → G i ≃ₗ[R] G' i) (he : ∀ i j h, e j ∘ₗ f i j h = f' i j h ∘ₗ e i)
+ {i : ι} (g : G' i) :
+ (congr e he).symm (of _ _ G' f' i g) = of _ _ G f i ((e i).symm g) :=
+ map_apply_of _ (fun i j h ↦ by
+ rw [toLinearMap_symm_comp_eq, ← comp_assoc, he i, comp_assoc, comp_coe, symm_trans_self,
+ refl_toLinearMap, comp_id]) _
+
+end functorial
+
section Totalize
open Classical
@@ -302,8 +390,8 @@ instance : Inhabited (DirectLimit G f) :=
instance [IsEmpty ι] : Unique (DirectLimit G f) := Module.DirectLimit.unique _ _
/-- The canonical map from a component to the direct limit. -/
-def of (i) : G i →ₗ[ℤ] DirectLimit G f :=
- Module.DirectLimit.of ℤ ι G (fun i j hij => (f i j hij).toIntLinearMap) i
+def of (i) : G i →+ DirectLimit G f :=
+ (Module.DirectLimit.of ℤ ι G (fun i j hij => (f i j hij).toIntLinearMap) i).toAddMonoidHom
#align add_comm_group.direct_limit.of AddCommGroup.DirectLimit.of
variable {G f}
@@ -337,9 +425,9 @@ variable (G f)
/-- The universal property of the direct limit: maps from the components to another abelian group
that respect the directed system structure (i.e. make some diagram commute) give rise
to a unique map out of the direct limit. -/
-def lift : DirectLimit G f →ₗ[ℤ] P :=
- Module.DirectLimit.lift ℤ ι G (fun i j hij => (f i j hij).toIntLinearMap)
- (fun i => (g i).toIntLinearMap) Hg
+def lift : DirectLimit G f →+ P :=
+ (Module.DirectLimit.lift ℤ ι G (fun i j hij => (f i j hij).toIntLinearMap)
+ (fun i => (g i).toIntLinearMap) Hg).toAddMonoidHom
#align add_comm_group.direct_limit.lift AddCommGroup.DirectLimit.lift
variable {G f}
@@ -350,12 +438,104 @@ theorem lift_of (i x) : lift G f P g Hg (of G f i x) = g i x :=
#align add_comm_group.direct_limit.lift_of AddCommGroup.DirectLimit.lift_of
theorem lift_unique [IsDirected ι (· ≤ ·)] (F : DirectLimit G f →+ P) (x) :
- F x = lift G f P (fun i => F.comp (of G f i).toAddMonoidHom) (fun i j hij x => by simp) x := by
+ F x = lift G f P (fun i => F.comp (of G f i)) (fun i j hij x => by simp) x := by
cases isEmpty_or_nonempty ι
· simp_rw [Subsingleton.elim x 0, _root_.map_zero]
· exact DirectLimit.induction_on x fun i x => by simp
#align add_comm_group.direct_limit.lift_unique AddCommGroup.DirectLimit.lift_unique
+lemma lift_injective [IsDirected ι (· ≤ ·)]
+ (injective : ∀ i, Function.Injective <| g i) :
+ Function.Injective (lift G f P g Hg) := by
+ cases isEmpty_or_nonempty ι
+ · apply Function.injective_of_subsingleton
+ simp_rw [injective_iff_map_eq_zero] at injective ⊢
+ intros z hz
+ induction' z using DirectLimit.induction_on with _ g
+ rw [lift_of] at hz
+ rw [injective _ g hz, _root_.map_zero]
+
+section functorial
+
+variable {G' : ι → Type v'} [∀ i, AddCommGroup (G' i)]
+variable {f' : ∀ i j, i ≤ j → G' i →+ G' j}
+
+variable {G'' : ι → Type v''} [∀ i, AddCommGroup (G'' i)]
+variable {f'' : ∀ i j, i ≤ j → G'' i →+ G'' j}
+
+/--
+Consider direct limits `lim G` and `lim G'` with direct system `f` and `f'` respectively, any
+family of group homomorphisms `gᵢ : Gᵢ ⟶ G'ᵢ` such that `g ∘ f = f' ∘ g` induces a group
+homomorphism `lim G ⟶ lim G'`.
+-/
+def map (g : (i : ι) → G i →+ G' i)
+ (hg : ∀ i j h, (g j).comp (f i j h) = (f' i j h).comp (g i)) :
+ DirectLimit G f →+ DirectLimit G' f' :=
+ lift _ _ _ (fun i ↦ (of _ _ _).comp (g i)) fun i j h g ↦ by
+ cases isEmpty_or_nonempty ι
+ · exact Subsingleton.elim _ _
+ · have eq1 := FunLike.congr_fun (hg i j h) g
+ simp only [AddMonoidHom.coe_comp, Function.comp_apply] at eq1 ⊢
+ rw [eq1, of_f]
+
+@[simp] lemma map_apply_of (g : (i : ι) → G i →+ G' i)
+ (hg : ∀ i j h, (g j).comp (f i j h) = (f' i j h).comp (g i))
+ {i : ι} (x : G i) :
+ map g hg (of G f _ x) = of G' f' i (g i x) :=
+ lift_of _ _ _ _ _
+
+@[simp] lemma map_id [IsDirected ι (· ≤ ·)] :
+ map (fun i ↦ AddMonoidHom.id _) (fun _ _ _ ↦ rfl) = AddMonoidHom.id (DirectLimit G f) :=
+ FunLike.ext _ _ fun x ↦ (isEmpty_or_nonempty ι).elim (fun _ ↦ Subsingleton.elim _ _) fun _ ↦
+ x.induction_on fun i g ↦ by simp
+
+lemma map_comp [IsDirected ι (· ≤ ·)]
+ (g₁ : (i : ι) → G i →+ G' i) (g₂ : (i : ι) → G' i →+ G'' i)
+ (hg₁ : ∀ i j h, (g₁ j).comp (f i j h) = (f' i j h).comp (g₁ i))
+ (hg₂ : ∀ i j h, (g₂ j).comp (f' i j h) = (f'' i j h).comp (g₂ i)) :
+ ((map g₂ hg₂).comp (map g₁ hg₁) :
+ DirectLimit G f →+ DirectLimit G'' f'') =
+ (map (fun i ↦ (g₂ i).comp (g₁ i)) fun i j h ↦ by
+ rw [AddMonoidHom.comp_assoc, hg₁ i, ← AddMonoidHom.comp_assoc, hg₂ i,
+ AddMonoidHom.comp_assoc] :
+ DirectLimit G f →+ DirectLimit G'' f'') :=
+ FunLike.ext _ _ fun x ↦ (isEmpty_or_nonempty ι).elim (fun _ ↦ Subsingleton.elim _ _) fun _ ↦
+ x.induction_on fun i g ↦ by simp
+
+/--
+Consider direct limits `lim G` and `lim G'` with direct system `f` and `f'` respectively, any
+family of equivalences `eᵢ : Gᵢ ≅ G'ᵢ` such that `e ∘ f = f' ∘ e` induces an equivalence
+`lim G ⟶ lim G'`.
+-/
+def congr [IsDirected ι (· ≤ ·)]
+ (e : (i : ι) → G i ≃+ G' i)
+ (he : ∀ i j h, (e j).toAddMonoidHom.comp (f i j h) = (f' i j h).comp (e i)) :
+ DirectLimit G f ≃+ DirectLimit G' f' :=
+ AddMonoidHom.toAddEquiv (map (e ·) he)
+ (map (fun i ↦ (e i).symm) fun i j h ↦ FunLike.ext _ _ fun x ↦ by
+ have eq1 := FunLike.congr_fun (he i j h) ((e i).symm x)
+ simp only [AddMonoidHom.coe_comp, AddEquiv.coe_toAddMonoidHom, Function.comp_apply,
+ AddMonoidHom.coe_coe, AddEquiv.apply_symm_apply] at eq1 ⊢
+ simp [← eq1, of_f])
+ (by rw [map_comp]; convert map_id <;> aesop)
+ (by rw [map_comp]; convert map_id <;> aesop)
+
+lemma congr_apply_of [IsDirected ι (· ≤ ·)]
+ (e : (i : ι) → G i ≃+ G' i)
+ (he : ∀ i j h, (e j).toAddMonoidHom.comp (f i j h) = (f' i j h).comp (e i))
+ {i : ι} (g : G i) :
+ congr e he (of G f i g) = of G' f' i (e i g) :=
+ map_apply_of _ he _
+
+lemma congr_symm_apply_of [IsDirected ι (· ≤ ·)]
+ (e : (i : ι) → G i ≃+ G' i)
+ (he : ∀ i j h, (e j).toAddMonoidHom.comp (f i j h) = (f' i j h).comp (e i))
+ {i : ι} (g : G' i) :
+ (congr e he).symm (of G' f' i g) = of G f i ((e i).symm g) := by
+ simp only [congr, AddMonoidHom.toAddEquiv_symm_apply, map_apply_of, AddMonoidHom.coe_coe]
+
+end functorial
+
end DirectLimit
end AddCommGroup
@@ -690,6 +870,95 @@ theorem lift_unique [IsDirected ι (· ≤ ·)] (F : DirectLimit G f →+* P) (x
· exact DirectLimit.induction_on x fun i x => by simp [lift_of]
#align ring.direct_limit.lift_unique Ring.DirectLimit.lift_unique
+lemma lift_injective [Nonempty ι] [IsDirected ι (· ≤ ·)]
+ (injective : ∀ i, Function.Injective <| g i) :
+ Function.Injective (lift G f P g Hg) := by
+ simp_rw [injective_iff_map_eq_zero] at injective ⊢
+ intros z hz
+ induction' z using DirectLimit.induction_on with _ g
+ rw [lift_of] at hz
+ rw [injective _ g hz, _root_.map_zero]
+
+section functorial
+
+variable {f : ∀ i j, i ≤ j → G i →+* G j}
+variable {G' : ι → Type v'} [∀ i, CommRing (G' i)]
+variable {f' : ∀ i j, i ≤ j → G' i →+* G' j}
+
+variable {G'' : ι → Type v''} [∀ i, CommRing (G'' i)]
+variable {f'' : ∀ i j, i ≤ j → G'' i →+* G'' j}
+
+variable [Nonempty ι]
+/--
+Consider direct limits `lim G` and `lim G'` with direct system `f` and `f'` respectively, any
+family of ring homomorphisms `gᵢ : Gᵢ ⟶ G'ᵢ` such that `g ∘ f = f' ∘ g` induces a ring
+homomorphism `lim G ⟶ lim G'`.
+-/
+def map (g : (i : ι) → G i →+* G' i)
+ (hg : ∀ i j h, (g j).comp (f i j h) = (f' i j h).comp (g i)) :
+ DirectLimit G (fun _ _ h ↦ f _ _ h) →+* DirectLimit G' fun _ _ h ↦ f' _ _ h :=
+ lift _ _ _ (fun i ↦ (of _ _ _).comp (g i)) fun i j h g ↦ by
+ have eq1 := FunLike.congr_fun (hg i j h) g
+ simp only [RingHom.coe_comp, Function.comp_apply] at eq1 ⊢
+ rw [eq1, of_f]
+
+@[simp] lemma map_apply_of (g : (i : ι) → G i →+* G' i)
+ (hg : ∀ i j h, (g j).comp (f i j h) = (f' i j h).comp (g i))
+ {i : ι} (x : G i) :
+ map g hg (of G _ _ x) = of G' (fun _ _ h ↦ f' _ _ h) i (g i x) :=
+ lift_of _ _ _ _ _
+
+@[simp] lemma map_id [IsDirected ι (· ≤ ·)] :
+ map (fun i ↦ RingHom.id _) (fun _ _ _ ↦ rfl) =
+ RingHom.id (DirectLimit G fun _ _ h ↦ f _ _ h) :=
+ FunLike.ext _ _ fun x ↦ x.induction_on fun i g ↦ by simp
+
+lemma map_comp [IsDirected ι (· ≤ ·)]
+ (g₁ : (i : ι) → G i →+* G' i) (g₂ : (i : ι) → G' i →+* G'' i)
+ (hg₁ : ∀ i j h, (g₁ j).comp (f i j h) = (f' i j h).comp (g₁ i))
+ (hg₂ : ∀ i j h, (g₂ j).comp (f' i j h) = (f'' i j h).comp (g₂ i)) :
+ ((map g₂ hg₂).comp (map g₁ hg₁) :
+ DirectLimit G (fun _ _ h ↦ f _ _ h) →+* DirectLimit G'' fun _ _ h ↦ f'' _ _ h) =
+ (map (fun i ↦ (g₂ i).comp (g₁ i)) fun i j h ↦ by
+ rw [RingHom.comp_assoc, hg₁ i, ← RingHom.comp_assoc, hg₂ i, RingHom.comp_assoc] :
+ DirectLimit G (fun _ _ h ↦ f _ _ h) →+* DirectLimit G'' fun _ _ h ↦ f'' _ _ h) :=
+ FunLike.ext _ _ fun x ↦ x.induction_on fun i g ↦ by simp
+
+/--
+Consider direct limits `lim G` and `lim G'` with direct system `f` and `f'` respectively, any
+family of equivalences `eᵢ : Gᵢ ≅ G'ᵢ` such that `e ∘ f = f' ∘ e` induces an equivalence
+`lim G ⟶ lim G'`.
+-/
+def congr [IsDirected ι (· ≤ ·)]
+ (e : (i : ι) → G i ≃+* G' i)
+ (he : ∀ i j h, (e j).toRingHom.comp (f i j h) = (f' i j h).comp (e i)) :
+ DirectLimit G (fun _ _ h ↦ f _ _ h) ≃+* DirectLimit G' fun _ _ h ↦ f' _ _ h :=
+ RingEquiv.ofHomInv
+ (map (e ·) he)
+ (map (fun i ↦ (e i).symm) fun i j h ↦ FunLike.ext _ _ fun x ↦ by
+ have eq1 := FunLike.congr_fun (he i j h) ((e i).symm x)
+ simp only [RingEquiv.toRingHom_eq_coe, RingHom.coe_comp, RingHom.coe_coe, Function.comp_apply,
+ RingEquiv.apply_symm_apply] at eq1 ⊢
+ simp [← eq1, of_f])
+ (FunLike.ext _ _ fun x ↦ x.induction_on <| by simp)
+ (FunLike.ext _ _ fun x ↦ x.induction_on <| by simp)
+
+lemma congr_apply_of [IsDirected ι (· ≤ ·)]
+ (e : (i : ι) → G i ≃+* G' i)
+ (he : ∀ i j h, (e j).toRingHom.comp (f i j h) = (f' i j h).comp (e i))
+ {i : ι} (g : G i) :
+ congr e he (of G _ i g) = of G' (fun _ _ h ↦ f' _ _ h) i (e i g) :=
+ map_apply_of _ he _
+
+lemma congr_symm_apply_of [IsDirected ι (· ≤ ·)]
+ (e : (i : ι) → G i ≃+* G' i)
+ (he : ∀ i j h, (e j).toRingHom.comp (f i j h) = (f' i j h).comp (e i))
+ {i : ι} (g : G' i) :
+ (congr e he).symm (of G' _ i g) = of G (fun _ _ h ↦ f _ _ h) i ((e i).symm g) := by
+ simp only [congr, RingEquiv.ofHomInv_symm_apply, map_apply_of, RingHom.coe_coe]
+
+end functorial
+
end DirectLimit
end
@@ -103,6 +103,9 @@ instance module : Module R (DirectLimit G f) :=
instance inhabited : Inhabited (DirectLimit G f) :=
⟨0⟩
+instance unique [IsEmpty ι] : Unique (DirectLimit G f) :=
+ inferInstanceAs <| Unique (Quotient _)
+
variable (R ι)
/-- The canonical map from a component to the direct limit. -/
@@ -160,11 +163,13 @@ theorem lift_of {i} (x) : lift R ι G f g Hg (of R ι G f i x) = g i x :=
DirectSum.toModule_lof R _ _
#align module.direct_limit.lift_of Module.DirectLimit.lift_of
-theorem lift_unique [Nonempty ι] [IsDirected ι (· ≤ ·)] (F : DirectLimit G f →ₗ[R] P) (x) :
+theorem lift_unique [IsDirected ι (· ≤ ·)] (F : DirectLimit G f →ₗ[R] P) (x) :
F x =
lift R ι G f (fun i => F.comp <| of R ι G f i)
- (fun i j hij x => by rw [LinearMap.comp_apply, of_f]; rfl) x :=
- DirectLimit.induction_on x fun i x => by rw [lift_of]; rfl
+ (fun i j hij x => by rw [LinearMap.comp_apply, of_f]; rfl) x := by
+ cases isEmpty_or_nonempty ι
+ · simp_rw [Subsingleton.elim x 0, _root_.map_zero]
+ · exact DirectLimit.induction_on x fun i x => by rw [lift_of]; rfl
#align module.direct_limit.lift_unique Module.DirectLimit.lift_unique
section Totalize
@@ -294,6 +299,8 @@ instance : AddCommGroup (DirectLimit G f) :=
instance : Inhabited (DirectLimit G f) :=
⟨0⟩
+instance [IsEmpty ι] : Unique (DirectLimit G f) := Module.DirectLimit.unique _ _
+
/-- The canonical map from a component to the direct limit. -/
def of (i) : G i →ₗ[ℤ] DirectLimit G f :=
Module.DirectLimit.of ℤ ι G (fun i j hij => (f i j hij).toIntLinearMap) i
@@ -342,9 +349,11 @@ theorem lift_of (i x) : lift G f P g Hg (of G f i x) = g i x :=
Module.DirectLimit.lift_of _ _ _
#align add_comm_group.direct_limit.lift_of AddCommGroup.DirectLimit.lift_of
-theorem lift_unique [Nonempty ι] [IsDirected ι (· ≤ ·)] (F : DirectLimit G f →+ P) (x) :
- F x = lift G f P (fun i => F.comp (of G f i).toAddMonoidHom) (fun i j hij x => by simp) x :=
- DirectLimit.induction_on x fun i x => by simp
+theorem lift_unique [IsDirected ι (· ≤ ·)] (F : DirectLimit G f →+ P) (x) :
+ F x = lift G f P (fun i => F.comp (of G f i).toAddMonoidHom) (fun i j hij x => by simp) x := by
+ cases isEmpty_or_nonempty ι
+ · simp_rw [Subsingleton.elim x 0, _root_.map_zero]
+ · exact DirectLimit.induction_on x fun i x => by simp
#align add_comm_group.direct_limit.lift_unique AddCommGroup.DirectLimit.lift_unique
end DirectLimit
@@ -671,9 +680,14 @@ theorem lift_of (i x) : lift G f P g Hg (of G f i x) = g i x :=
FreeCommRing.lift_of _ _
#align ring.direct_limit.lift_of Ring.DirectLimit.lift_of
-theorem lift_unique [Nonempty ι] [IsDirected ι (· ≤ ·)] (F : DirectLimit G f →+* P) (x) :
- F x = lift G f P (fun i => F.comp <| of G f i) (fun i j hij x => by simp [of_f]) x :=
- DirectLimit.induction_on x fun i x => by simp [lift_of]
+theorem lift_unique [IsDirected ι (· ≤ ·)] (F : DirectLimit G f →+* P) (x) :
+ F x = lift G f P (fun i => F.comp <| of G f i) (fun i j hij x => by simp [of_f]) x := by
+ cases isEmpty_or_nonempty ι
+ · apply FunLike.congr_fun
+ apply Ideal.Quotient.ringHom_ext
+ refine FreeCommRing.hom_ext fun ⟨i, _⟩ ↦ ?_
+ exact IsEmpty.elim' inferInstance i
+ · exact DirectLimit.induction_on x fun i x => by simp [lift_of]
#align ring.direct_limit.lift_unique Ring.DirectLimit.lift_unique
end DirectLimit
@@ -501,7 +501,6 @@ theorem of.zero_exact_aux2 {x : FreeCommRing (Σi, G i)} {s t} (hxs : IsSupporte
dsimp only
-- porting note: Lean 3 could get away with far fewer hints for inputs in the line below
have := DirectedSystem.map_map (fun i j h => f' i j h) (hj p hps) hjk
- dsimp only at this
rw [this]
· rintro x y ihx ihy
rw [(restriction _).map_add, (FreeCommRing.lift _).map_add, (f' j k hjk).map_add, ihx, ihy,
@@ -529,7 +528,6 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
restriction_of, dif_pos, lift_of, lift_of]
dsimp only
have := DirectedSystem.map_map (fun i j h => f' i j h) hij (le_refl j : j ≤ j)
- dsimp only at this
rw [this]
exact sub_self _
exacts [Or.inr rfl, Or.inl rfl]
@@ -539,8 +537,7 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
-- porting note: the Lean3 proof contained `rw [restriction_of]`, but this
-- lemma does not seem to work here
· rw [RingHom.map_sub, RingHom.map_sub]
- erw [lift_of, dif_pos rfl, RingHom.map_one, RingHom.map_one, lift_of,
- RingHom.map_one, sub_self]
+ erw [lift_of, dif_pos rfl, RingHom.map_one, lift_of, RingHom.map_one, sub_self]
· refine'
⟨i, {⟨i, x + y⟩, ⟨i, x⟩, ⟨i, y⟩}, _,
isSupported_sub (isSupported_of.2 <| Or.inl rfl)
@@ -128,8 +128,7 @@ theorem exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)] (z : DirectLimit G f
let ⟨k, hik, hjk⟩ := exists_ge_ge i j
⟨k, f i k hik x + f j k hjk y, by
rw [LinearMap.map_add, of_f, of_f, ihx, ihy]
- -- porting note: was `rfl`
- simp only [Submodule.Quotient.mk''_eq_mk, Quotient.mk_add]⟩
+ rfl ⟩
#align module.direct_limit.exists_of Module.DirectLimit.exists_of
@[elab_as_elim]
@@ -732,17 +732,14 @@ protected theorem inv_mul_cancel {p : Ring.DirectLimit G f} (hp : p ≠ 0) : inv
rw [_root_.mul_comm, DirectLimit.mul_inv_cancel G f hp]
#align field.direct_limit.inv_mul_cancel Field.DirectLimit.inv_mul_cancel
--- porting note: this takes some time, had to increase heartbeats
-set_option maxHeartbeats 500000 in
/-- Noncomputable field structure on the direct limit of fields.
See note [reducible non-instances]. -/
@[reducible]
protected noncomputable def field [DirectedSystem G fun i j h => f' i j h] :
Field (Ring.DirectLimit G fun i j h => f' i j h) :=
- { Ring.DirectLimit.commRing G fun i j h => f' i j h,
- DirectLimit.nontrivial G fun i j h =>
- f' i j h with
- inv := inv G fun i j h => f' i j h
+ -- This used to include the parent CommRing and Nontrivial instances,
+ -- but leaving them implicit avoids a very expensive (2-3 minutes!) eta expansion.
+ { inv := inv G fun i j h => f' i j h
mul_inv_cancel := fun p => DirectLimit.mul_inv_cancel G fun i j h => f' i j h
inv_zero := dif_pos rfl }
#align field.direct_limit.field Field.DirectLimit.field
rcases
, convert
and congrm
(#7725)
Replace rcases(
with rcases (
. Same thing for convert(
and congrm(
. No other change.
@@ -593,7 +593,7 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
· rintro x y ⟨j, t, hj, hyt, iht⟩
rw [smul_eq_mul]
rcases exists_finset_support x with ⟨s, hxs⟩
- rcases(s.image Sigma.fst).exists_le with ⟨i, hi⟩
+ rcases (s.image Sigma.fst).exists_le with ⟨i, hi⟩
obtain ⟨k, hik, hjk⟩ := exists_ge_ge i j
have : ∀ z : Σi, G i, z ∈ ↑s ∪ t → z.1 ≤ k := by
rintro z (hz | hz)
_root_.map_sum
more consistently (#7189)
Also _root_.map_smul
when in the neighbourhood.
@@ -203,7 +203,7 @@ theorem toModule_totalize_of_le {x : DirectSum ι G} {i j : ι} (hij : i ≤ j)
f i j hij (DirectSum.toModule R ι (G i) (fun k => totalize G f k i) x) := by
rw [← @DFinsupp.sum_single ι G _ _ _ x]
unfold DFinsupp.sum
- simp only [LinearMap.map_sum]
+ simp only [map_sum]
refine' Finset.sum_congr rfl fun k hk => _
rw [DirectSum.single_eq_lof R k (x k), DirectSum.toModule_lof, DirectSum.toModule_lof,
totalize_of_le (hx k hk), totalize_of_le (le_trans (hx k hk) hij), DirectedSystem.map_map]
@@ -733,7 +733,7 @@ protected theorem inv_mul_cancel {p : Ring.DirectLimit G f} (hp : p ≠ 0) : inv
#align field.direct_limit.inv_mul_cancel Field.DirectLimit.inv_mul_cancel
-- porting note: this takes some time, had to increase heartbeats
-set_option maxHeartbeats 1000000 in
+set_option maxHeartbeats 500000 in
/-- Noncomputable field structure on the direct limit of fields.
See note [reducible non-instances]. -/
@[reducible]
MulZeroClass.
in mul_zero
/zero_mul
(#6682)
Search&replace MulZeroClass.mul_zero
-> mul_zero
, MulZeroClass.zero_mul
-> zero_mul
.
These were introduced by Mathport, as the full name of mul_zero
is actually MulZeroClass.mul_zero
(it's exported with the short name).
@@ -605,7 +605,7 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
-- porting note: RingHom.map_mul was `(restriction _).map_mul`
rw [RingHom.map_mul, (FreeCommRing.lift _).map_mul, ←
of.zero_exact_aux2 G f' hyt hj this hjk (Set.subset_union_right (↑s) t), iht,
- (f' j k hjk).map_zero, MulZeroClass.mul_zero]
+ (f' j k hjk).map_zero, mul_zero]
#align ring.direct_limit.of.zero_exact_aux Ring.DirectLimit.of.zero_exact_aux
/-- A component that corresponds to zero in the direct limit is already zero in some
@@ -2,17 +2,14 @@
Copyright (c) 2019 Kenny Lau, Chris Hughes. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kenny Lau, Chris Hughes
-
-! This file was ported from Lean 3 source module algebra.direct_limit
-! leanprover-community/mathlib commit f0c8bf9245297a541f468be517f1bde6195105e9
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Data.Finset.Order
import Mathlib.Algebra.DirectSum.Module
import Mathlib.RingTheory.FreeCommRing
import Mathlib.RingTheory.Ideal.Quotient
+#align_import algebra.direct_limit from "leanprover-community/mathlib"@"f0c8bf9245297a541f468be517f1bde6195105e9"
+
/-!
# Direct limit of modules, abelian groups, rings, and fields.
@@ -204,8 +204,8 @@ theorem toModule_totalize_of_le {x : DirectSum ι G} {i j : ι} (hij : i ≤ j)
(hx : ∀ k ∈ x.support, k ≤ i) :
DirectSum.toModule R ι (G j) (fun k => totalize G f k j) x =
f i j hij (DirectSum.toModule R ι (G i) (fun k => totalize G f k i) x) := by
- rw [← @Dfinsupp.sum_single ι G _ _ _ x]
- unfold Dfinsupp.sum
+ rw [← @DFinsupp.sum_single ι G _ _ _ x]
+ unfold DFinsupp.sum
simp only [LinearMap.map_sum]
refine' Finset.sum_congr rfl fun k hk => _
rw [DirectSum.single_eq_lof R k (x k), DirectSum.toModule_lof, DirectSum.toModule_lof,
@@ -225,8 +225,8 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : DirectS
subst hxy
constructor
· intro i0 hi0
- rw [Dfinsupp.mem_support_iff, DirectSum.sub_apply, ← DirectSum.single_eq_lof, ←
- DirectSum.single_eq_lof, Dfinsupp.single_apply, Dfinsupp.single_apply] at hi0
+ rw [DFinsupp.mem_support_iff, DirectSum.sub_apply, ← DirectSum.single_eq_lof, ←
+ DirectSum.single_eq_lof, DFinsupp.single_apply, DFinsupp.single_apply] at hi0
split_ifs at hi0 with hi hj hj
· rwa [hi] at hik
· rwa [hi] at hik
@@ -240,7 +240,7 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : DirectS
(fun x y ⟨i, hi, hxi⟩ ⟨j, hj, hyj⟩ =>
let ⟨k, hik, hjk⟩ := exists_ge_ge i j
⟨k, fun l hl =>
- (Finset.mem_union.1 (Dfinsupp.support_add hl)).elim (fun hl => le_trans (hi _ hl) hik)
+ (Finset.mem_union.1 (DFinsupp.support_add hl)).elim (fun hl => le_trans (hi _ hl) hik)
fun hl => le_trans (hj _ hl) hjk, by
-- Porting note: this had been
-- simp [LinearMap.map_add, hxi, hyj, toModule_totalize_of_le hik hi,
This is the second half of the changes originally in #5699, removing all occurrences of ;
after a space and implementing a linter rule to enforce it.
In most cases this 2-character substring has a space after it, so the following command was run first:
find . -type f -name "*.lean" -exec sed -i -E 's/ ; /; /g' {} \;
The remaining cases were few enough in number that they were done manually.
@@ -436,7 +436,7 @@ theorem exists_of [Nonempty ι] [IsDirected ι (· ≤ ·)] (z : DirectLimit G f
rfl⟩)
fun p q ⟨i, x, ihx⟩ ⟨j, y, ihy⟩ =>
let ⟨k, hik, hjk⟩ := exists_ge_ge i j
- ⟨k, f i k hik x + f j k hjk y, by rw [(of _ _ _).map_add, of_f, of_f, ihx, ihy] ; rfl⟩
+ ⟨k, f i k hik x + f j k hjk y, by rw [(of _ _ _).map_add, of_f, of_f, ihx, ihy]; rfl⟩
#align ring.direct_limit.exists_of Ring.DirectLimit.exists_of
section
This PR is the result of running
find . -type f -name "*.lean" -exec sed -i -E 's/^( +)\. /\1· /' {} \;
find . -type f -name "*.lean" -exec sed -i -E 'N;s/^( +·)\n +(.*)$/\1 \2/;P;D' {} \;
which firstly replaces .
focusing dots with ·
and secondly removes isolated instances of such dots, unifying them with the following line. A new rule is placed in the style linter to verify this.
@@ -489,8 +489,7 @@ theorem of.zero_exact_aux2 {x : FreeCommRing (Σi, G i)} {s t} (hxs : IsSupporte
f' j k hjk (lift (fun ix : s => f' ix.1.1 j (hj ix ix.2) ix.1.2) (restriction s x)) =
lift (fun ix : t => f' ix.1.1 k (hk ix ix.2) ix.1.2) (restriction t x) := by
refine' Subring.InClosure.recOn hxs _ _ _ _
- ·
- rw [(restriction _).map_one, (FreeCommRing.lift _).map_one, (f' j k hjk).map_one,
+ · rw [(restriction _).map_one, (FreeCommRing.lift _).map_one, (f' j k hjk).map_one,
(restriction _).map_one, (FreeCommRing.lift _).map_one]
· -- porting note: Lean 3 had `(FreeCommRing.lift _).map_neg` but I needed to replace it with
-- `RingHom.map_neg` to get the rewrite to compile
at
and goals (#5387)
Changes are of the form
some_tactic at h⊢
-> some_tactic at h ⊢
some_tactic at h
-> some_tactic at h
@@ -227,7 +227,7 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : DirectS
· intro i0 hi0
rw [Dfinsupp.mem_support_iff, DirectSum.sub_apply, ← DirectSum.single_eq_lof, ←
DirectSum.single_eq_lof, Dfinsupp.single_apply, Dfinsupp.single_apply] at hi0
- split_ifs at hi0 with hi hj hj
+ split_ifs at hi0 with hi hj hj
· rwa [hi] at hik
· rwa [hi] at hik
· rwa [hj] at hjk
@@ -71,14 +71,14 @@ variable [∀ i, AddCommGroup (G i)] [∀ i, Module R (G i)]
variable {G} (f : ∀ i j, i ≤ j → G i →ₗ[R] G j)
/-- A copy of `DirectedSystem.map_self` specialized to linear maps, as otherwise the
-`λ i j h, f i j h` can confuse the simplifier. -/
+`fun i j h ↦ f i j h` can confuse the simplifier. -/
nonrec theorem DirectedSystem.map_self [DirectedSystem G fun i j h => f i j h] (i x h) :
f i i h x = x :=
DirectedSystem.map_self (fun i j h => f i j h) i x h
#align module.directed_system.map_self Module.DirectedSystem.map_self
/-- A copy of `DirectedSystem.map_map` specialized to linear maps, as otherwise the
-`λ i j h, f i j h` can confuse the simplifier. -/
+`fun i j h ↦ f i j h` can confuse the simplifier. -/
nonrec theorem DirectedSystem.map_map [DirectedSystem G fun i j h => f i j h] {i j k} (hij hjk x) :
f j k hjk (f i j hij x) = f i k (le_trans hij hjk) x :=
DirectedSystem.map_map (fun i j h => f i j h) hij hjk x
@@ -91,7 +91,7 @@ def DirectLimit : Type max v w :=
DirectSum ι G ⧸
(span R <|
{ a |
- ∃ (i j : _)(H : i ≤ j)(x : _),
+ ∃ (i j : _) (H : i ≤ j) (x : _),
DirectSum.lof R ι G i x - DirectSum.lof R ι G j (f i j H x) = a })
#align module.direct_limit Module.DirectLimit
@@ -615,7 +615,7 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
/-- A component that corresponds to zero in the direct limit is already zero in some
bigger module in the directed system. -/
theorem of.zero_exact [IsDirected ι (· ≤ ·)] {i x} (hix : of G (fun i j h => f' i j h) i x = 0) :
- ∃ (j : _)(hij : i ≤ j), f' i j hij x = 0 :=
+ ∃ (j : _) (hij : i ≤ j), f' i j hij x = 0 :=
haveI : Nonempty ι := ⟨i⟩
let ⟨j, s, H, hxs, hx⟩ := of.zero_exact_aux hix
have hixs : (⟨i, x⟩ : Σi, G i) ∈ s := isSupported_of.1 hxs
@@ -537,7 +537,7 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
dsimp only at this
rw [this]
exact sub_self _
- exacts[Or.inr rfl, Or.inl rfl]
+ exacts [Or.inr rfl, Or.inl rfl]
· refine' ⟨i, {⟨i, 1⟩}, _, isSupported_sub (isSupported_of.2 rfl) isSupported_one, _⟩
· rintro k (rfl | h)
rfl
@@ -574,7 +574,7 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
exact sub_self _
all_goals tauto
-- porting note: was
- --exacts[sub_self _, Or.inl rfl, Or.inr (Or.inr rfl), Or.inr (Or.inl rfl)]
+ --exacts [sub_self _, Or.inl rfl, Or.inr (Or.inr rfl), Or.inr (Or.inl rfl)]
· refine' Nonempty.elim (by infer_instance) fun ind : ι => _
refine' ⟨ind, ∅, fun _ => False.elim, isSupported_zero, _⟩
-- porting note: `RingHom.map_zero` was `(restriction _).map_zero`
@@ -601,7 +601,7 @@ theorem of.zero_exact_aux [Nonempty ι] [IsDirected ι (· ≤ ·)] {x : FreeCom
obtain ⟨k, hik, hjk⟩ := exists_ge_ge i j
have : ∀ z : Σi, G i, z ∈ ↑s ∪ t → z.1 ≤ k := by
rintro z (hz | hz)
- exacts[(hi z.1 <| Finset.mem_image.2 ⟨z, hz, rfl⟩).trans hik, (hj z hz).trans hjk]
+ exacts [(hi z.1 <| Finset.mem_image.2 ⟨z, hz, rfl⟩).trans hik, (hj z hz).trans hjk]
refine'
⟨k, ↑s ∪ t, this,
isSupported_mul (isSupported_upwards hxs <| Set.subset_union_left (↑s) t)
A few times rw [RingHom.map_neg]
worked, rw [(FreeCommRing.lift _).map_neg]
failed, and rw [(FreeCommRing.lift <explicit function>).map_neg]
succeeded. So there was some "sweet spot" where rw
would fail, and if you either gave it strictly less or strictly more information it would succeed. Other than that, not much to say.
Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: int-y1 <jason_yuen2007@hotmail.com> Co-authored-by: Kevin Buzzard <k.buzzard@imperial.ac.uk> Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr> Co-authored-by: Chris Hughes <chrishughes24@gmail.com>
The unported dependencies are